我有一张包含personid
和msg
列的表格。
personid, msg
--------------
1, 'msg1'
2, 'msg2'
2, 'msg3'
3, 'msg4'
1, 'msg2'
我想为每个msg
获得总计personid
。
我正在尝试这个查询:
select distinct personid, count(*)
FROM mytable;
我也尝试了这个查询
select distinct personid, count(msg)
FROM mytable;
但没有得到实际的结果。 我希望这个结果用于以上数据:
id, count
--------
1, 2
2, 2
3, 1
答案 0 :(得分:5)
您只需使用GROUP BY
代替DISTINCT
即可。所以试试这个查询:
SELECT personid, COUNT(msg)
FROM mytable
GROUP BY personid
ORDER BY personid;
GROUP BY
可让您使用汇总功能,例如AVG()
,MAX()
,MIN()
,SUM()
,COUNT()
等DISTINCT
只会删除重复项。