mysql根据多个字段进行分组统计

guxuemei1111 2013-09-24 04:20:44
有两个表:
table1
id key1 key2 key3 key4
1 112 222 333 null
2 112 222 333 null
3 134 222 333 444
4 134 000 333 444
5 178 212 312 412

table2
id
1
1
2
4
5

我想要对该表进行信息的统计:
1)查询table2,id去重;得到id=1、2、4、5;
2)利用id与table1关联,并根据key1、key2、key3、key4进行统计:id=1和id=2的几个key都一样,因此这几个key为一组,且出现次数为2

示例结果:
key1 key2 key3 key4 times
112 222 333 null 2
134 222 333 444 0
134 000 333 444 1
178 212 312 412 1

求教高手!
...全文
12524 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
guxuemei1111 2013-09-24
  • 打赏
  • 举报
回复
引用 1 楼 wwwwb 的回复:
SELECT a.`key1`,a.`key2`,a.`key3`,a.`key4`,COUNT(DISTINCT b.id) FROM tr1 a LEFT JOIN tr2 b ON a.`id`=b.`id` GROUP BY a.`key1`,a.`key2`,a.`key3`,a.`key4`
测试过,结果正确,谢谢版主!
wwwwb 2013-09-24
  • 打赏
  • 举报
回复
SELECT a.`key1`,a.`key2`,a.`key3`,a.`key4`,COUNT(DISTINCT b.id) FROM tr1 a LEFT JOIN tr2 b ON a.`id`=b.`id` GROUP BY a.`key1`,a.`key2`,a.`key3`,a.`key4`

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧