我有一张桌子personid
and 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
你只需要使用GROUP BY
代替DISTINCT
。所以尝试这个查询:
SELECT personid, COUNT(msg)
FROM mytable
GROUP BY personid
ORDER BY personid;
请参阅此 SQLFiddle http://sqlfiddle.com/#!2/75892/1
GROUP BY
让您使用聚合函数,例如AVG()
, MAX()
, MIN()
,
SUM()
, COUNT()
等同时DISTINCT
只是删除重复项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)