Get MAX from a GROUP BY

后端 未结 5 1511
礼貌的吻别
礼貌的吻别 2021-02-09 04:38

I was practicing some SQL when this hit me. I wanted to see how many times a certain commodity came up and from there get the commodity which came up the most.

5条回答
  •  刺人心
    刺人心 (楼主)
    2021-02-09 05:30

    CAUTION: the query will not handle duplicate records having the maximum COUNT

    SELECT  commodity,  COUNT(commodity) `count` 
    FROM    orders 
    GROUP   BY commodity
    ORDER   BY `count` DESC 
    LIMIT   1
    

    But this will,

    SELECT  commodity,  COUNT(commodity) `count` 
    FROM    orders 
    GROUP   BY commodity
    HAVING  COUNT(commodity) =
    (
        SELECT MAX(`COUNT`) 
        FROM
        (
            SELECT  COUNT(commodity) `count` 
            FROM    orders 
            GROUP   BY commodity
        )   s
    )
    

提交回复
热议问题