我正在学习SQL,我暂时遇到某个问题。我有一个巨大的数据集,如:
id v1
1 3
2 3
3 -
4 5
5 3
6 5
7 3
我需要计算每个id在v1中的次数。我寻求的输出是:
id count
1 0
2 0
3 4
4 0
5 2
6 0
7 0
一直在很多论坛上寻找答案。问题是有很多id,所以我不能用数字“1”搜索,依此类推。如果我使用类似id = v1的东西,我会得到一行在这些列中具有相同值的次数。寻求一些帮助。请。
答案 0 :(得分:3)
试试这个:
SELECT t1.id, COUNT(t2.v1)
FROM mytable AS t1
LEFT JOIN mytable AS t2 ON t1.id = t2.v1
GROUP BY t1.id
ORDER BY t1.id