【问题标题】:Get distinct records with counts获取带有计数的不同记录
【发布时间】:2012-09-08 12:20:11
【问题描述】:

我有一张带有personidmsg 列的表格。

personid, msg
--------------
 1,      'msg1'
 2,      'msg2'
 2,      'msg3'
 3,      'msg4'
 1,      'msg2'

我想得到每个personid 的总数msg。 我正在尝试这个查询:

select distinct personid, count(*)
FROM mytable;

我也试过这个查询

select distinct personid, count(msg)
FROM mytable;

但没有得到实际结果。 我想要上述数据的这个结果:

id, count
--------
1,   2
2,   2
3,   1

【问题讨论】:

    标签: mysql sql count distinct


    【解决方案1】:

    您只需要使用GROUP BY 而不是DISTINCT。所以试试这个查询:

    SELECT personid, COUNT(msg) 
    FROM mytable 
    GROUP BY personid
    ORDER BY personid;
    

    See this SQLFiddle

    GROUP BY 允许您使用聚合函数,例如 AVG()MAX()MIN()SUM()COUNT() 等,而 DISTINCT 只是删除重复项。

    【讨论】:

      猜你喜欢
      • 2012-12-22
      • 1970-01-01
      • 2018-09-20
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      相关资源
      最近更新 更多