在表?orders?中找到訂單數最多客戶對應的?customer_number?。
數據保證訂單數最多的顧客恰好只有一位。
表?orders 定義如下:
| Column ? ? ? ? ? ?| Type ? ? ?|
|-------------------|-----------|
| order_number (PK) | int ? ? ? |
| customer_number ? | int ? ? ? |
| order_date ? ? ? ?| date ? ? ?|
| required_date ? ? | date ? ? ?|
| shipped_date ? ? ?| date ? ? ?|
| status ? ? ? ? ? ?| char(15) ?|
| comment ? ? ? ? ? | char(200) |
樣例輸入
| order_number | customer_number | order_date | required_date | shipped_date | status | comment |
|--------------|-----------------|------------|---------------|--------------|--------|---------|
| 1 ? ? ? ? ? ?| 1 ? ? ? ? ? ? ? | 2017-04-09 | 2017-04-13 ? ?| 2017-04-12 ? | Closed | ? ? ? ? |
| 2 ? ? ? ? ? ?| 2 ? ? ? ? ? ? ? | 2017-04-15 | 2017-04-20 ? ?| 2017-04-18 ? | Closed | ? ? ? ? |
| 3 ? ? ? ? ? ?| 3 ? ? ? ? ? ? ? | 2017-04-16 | 2017-04-25 ? ?| 2017-04-20 ? | Closed | ? ? ? ? |
| 4 ? ? ? ? ? ?| 3 ? ? ? ? ? ? ? | 2017-04-18 | 2017-04-28 ? ?| 2017-04-25 ? | Closed | ? ? ? ? |
樣例輸出
| customer_number |
|-----------------|
| 3 ? ? ? ? ? ? ? |
解釋
customer_number 為 '3' 的顧客有兩個訂單,比顧客 '1' 或者 '2' 都要多,因為他們只有一個訂單
所以結果是該顧客的 customer_number ,也就是 3 。
進階: 如果有多位顧客訂單數并列最多,你能找到他們所有的 customer_number 嗎?
思路:按人分組,按數量排序,取第一個。
select customer_number
from orders
group by customer_number
order by count(*) desc limit 1;
?