Sum - 对所有数据进行分组

时间:2015-07-30 02:46:33

标签: sql

我有两张桌子:

tbl_user

id     username
1      kanda01
2      kanda02
3      kanda03
4      kanda04
5      kanda05

tbl_post

user_id      post_id
1            1
3            2
1            3
1            4
2            5
1            6

我想进行单一查询以获取如下数据

user_id     num_post
1           4
2           1
3           1
4           0
5           0
但是我被困住了。请帮帮我!

2 个答案:

答案 0 :(得分:2)

您需要执行LEFT JOINCOUNT

SELECT
    u.id, COUNT(p.post_id) AS num_post
FROM tbl_user u
LEFT JOIN tbl_post p
    ON u.id = p.user_id
GROUP BY u.id

答案 1 :(得分:1)

这很简单

select user_id, count(*) as num_post from tbl_post group by user_id;

Group by会将指标(count(*))应用于每个群组。

要获取用户4和5的计数,您可以加入表格。