我想对数据库中的一个表执行多个查询。下表汇总如下:
+-------+-----+
| user | val |
+-------+-----+
| user1 | 1 |
| user2 | 2 |
| null | 5 |
| null | 5 |
| user3 | 5 |
| user1 | 1 |
+-------+-----+
单独的查询很简单,但是我很难把它们放在一起。查询内容如下:
我首先要查询user列中任何不同的非空用户值,这些值将返回多个。
根据上面的查询结果,我想计算每个具有特定val的用户的总数。
到目前为止,我有:
SELECT
( SELECT user from db where user='{someuser}'),
( SELECT COUNT(*) FROM db WHERE user='{someuser}' AND val= '1'),
( SELECT COUNT(*) FROM db WHERE user='{someuser}' AND val= '2');
本质上我需要的是用user列中的每个用户替换{someuser}。
我希望我的输出像这样
+-------+-------+-------+-------+
| user | val=1 | val=2 | total |
+-------+-------+-------+-------+
| user1 | 1 | 1 | 2 |
| user2 | 1 | 0 | 1 |
| user3 | 0 | 0 | 0 |
+-------+-------+-------+-------+
1条答案
按热度按时间mlnl4t2r1#
嗯。我认为您需要条件聚合: