天天看點

【LeetCode-SQL586】訂單最多的客戶(基礎題,求衆數,可能多個)

文章目錄

  • ​​一、題目​​
  • ​​二、思路​​
  • ​​三、代碼​​
  • ​​Reference​​

一、題目

已知order表:

【LeetCode-SQL586】訂單最多的客戶(基礎題,求衆數,可能多個)

二、思路

如果最多訂單數隻有一個客戶,那就可以直接粗暴的分組後計算每組個數,然後排序求第一個。

SELECT customer_number
FROM orders
GROUP BY customer_number
ORDER BY COUNT(*) DESC
LIMIT 1;      

但如果是有并列客戶同時最多訂單數,則先找出最大訂單數的數值,然後用​

​Having​

​子查詢求衆數。

三、代碼

# Write your MySQL query statement below
SELECT customer_number
FROM orders
GROUP BY customer_number
HAVING COUNT(*) >= (
    SELECT COUNT(*) AS cnt
    FROM orders
    GROUP BY customer_number
    ORDER BY cnt DESC
    LIMIT 1
);      
【LeetCode-SQL586】訂單最多的客戶(基礎題,求衆數,可能多個)

Reference

[1] ​​SQL執行個體:求衆數​​​