我有两张表,第一张表的数据是:
ID Username
1 Dan
2 Eli
3 Sean
4 John
第二个表数据:
user_id Status_id
1 2
1 3
4 1
3 2
2 3
1 1
3 3
3 3
3 3
. .
goes on goes on
这两张table都是我的。
我想找出单个用户执行“status_id”的频率
我的预期结果是:
username status_id(1) status_id(2) status_id(3)
Dan 1 1 1
Eli 0 0 1
Sean 0 1 2
John 1 0 0
型
我的当前代码是:
SELECT b.username , COUNT(a.status_id)
FROM masterdb.auth_user b
left outer join masterdb.xmlform_joblist a
on a.user1_id = b.id
GROUP BY b.username, b.id, a.status_id
这样就得到了单独的计数,但是在一行中,没有提到每列代表哪个status_id
1条答案
按热度按时间zujrkrfu1#
这称为透视,分两步进行:
CASE
语句提取特定字段的数据检查here演示。
注:此解决方案假定有3个status_id值。如果需要概括状态id的数量,则需要动态查询。无论如何,最好尽量避免动态查询。