确定返回的最高结果总数

时间:2012-01-23 15:21:51

标签: mysql sql-order-by sum

我想从单个查询中确定两件事:

  1. 表格中最流行的专栏
  2. 此列在查询表格时所处的次数
  3. 示例表:

    user_id      some_field
    1                data
    2                data
    1                data
    

    上面会返回user_id#1作为表中最常见的,并且它将返回(2)它在表中的总次数。

    我完成了我的研究,并且遇到了两种类型的查询。

      
        
    1. GROUP BY user_id ORDER BY COUNT(*)DESC
    2.   
    3. SUM
    4.   

    问题在于我无法弄清楚如何将这两个查询相互结合使用。例如,请考虑以下查询,该查询成功返回最流行的列。

    $top_user = "SELECT user_id FROM table_name GROUP BY user_id ORDER BY COUNT(*) DESC";
    

    上述查询根据上面显示的示例表返回“1”。现在,我希望能够在表中找到user_id(1)的总次数返回“2”。

    这有可能吗?

    谢谢,

    埃文

1 个答案:

答案 0 :(得分:0)

您可以在SELECT列表中包含count(*)

SELECT user_id, count(*) as totaltimes from table_name 
         GROUP BY user_id ORDER BY count(*) DESC;

如果你只想要第一个:

SELECT user_id, count(*) as totaltimes from table_name 
         GROUP BY user_id ORDER BY count(*) DESC LIMIT 1;