我想创建一个简单的n x n矩阵,其中n是我的数据中每个分类字段的每个可能的唯一值,矩阵中的值包含具有一对两个分类值的记录的计数。
使用以下示例数据(实际数据的复制)会更清楚
| 用户标识|性别|层|年龄组|
| - -|- -|- -|- -|
| aaaa|雄的|第1层|十五至二十四岁|
| 三位一体|雄的|第2层|二十五至三十四岁|
| cccc的|母的|第1层|十五至二十四岁|
| 日|母的|第3层|35岁至44岁|
| 咿咿|其他|零值|35岁至44岁|
| ffff的复数|雄的|第2层|45岁以上|
在我的实际表中,有20多个分类字段和500 k多条记录(user_id)。
我想要的输出如下所示- [满足任意两个条件的记录计数],例如,居住在二级城市的男性用户数为2。因此,男性x二级城市的交集值为2。依此类推...
| n x n|雄的|母的|其他的|第1层|第2层|第3层|零值|十五至二十四岁|二十五至三十四岁|35岁至44岁|45岁以上|总计|
| - -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|
| 雄的|三个|第0页|第0页|一个|2个|第0页|第0页|一个|一个|第0页|一个|三个|
| 母的|第0页|2个|第0页|一个|第0页|一个|第0页|一个|第0页|一个|第0页|2个|
| 其他的|第0页|第0页|一个|第0页|第0页|第0页|一个|第0页|第0页|一个|第0页|一个|
| 第1层|一个|一个|第0页|2个|第0页|第0页|第0页|2个|第0页|第0页|第0页|2个|
| 第2层|2个|第0页|第0页||||||||||
| 第3层|第0页|一个|第0页||||||||||
| 零值|第0页|第0页|一个||||||||||
| 十五至二十四岁|一个|一个|第0页||||||||||
| 二十五至三十四岁|一个|第0页|第0页||||||||||
| 35岁至44岁|第0页|一个|一个||||||||||
| 45岁以上|一个|第0页|第0页||||||||||
| 总计|三个|2个|一个||||||||||
我的用例是获取两个分类字段之间的重叠,以其他字段的百分比表示。
我不确定使用SQL是容易还是复杂。我搜索了相关的问题,但令人惊讶的是,我找不到任何解决方案。希望你能帮助我使用SQL。如果你需要澄清这个问题,请告诉我。
1条答案
按热度按时间p8h8hvxi1#
你必须找到重复数据的总和,然后你可以相应地显示在表中。
下面是查询
您只需要用您的表名替换用户。