在線教育案例:如何分析銷售數據?

【面試題】

有一張“課程銷售訂單表”,包含4個字段:用戶id、下單日期、下單id、學科。

問題:查詢每個用戶第一個訂單的記錄,如果同時下單了包含多個課程的訂單,則按照“語文、數學、英語”順序排序。

【解題步驟】

1. 彙總分析

查詢“每個用戶第一個訂單”,涉及到“每個”,要想到《猴子 從零學會SQL》裏講過的要用“分組彙總”解決該類問題。按用戶id分組(group by),第一個訂單的記錄是指“下單日期”這一列最小的值(彙總用min函數)

查詢結果:

2. 多表聯結

上面只獲取到第一次下單用戶的用戶id、第一次下單日期。而題目要求如果同時下單了包含多個課程的訂單,則按照“語文、數學、英語”順序排序。

這就要獲取到表裏的其它數據。可以把上面查詢結果作爲表a1,和“課程銷售訂單表”(記爲表a2)進行多表聯結。

使用多表聯結,查詢每個用戶第一個訂單的記錄:

查詢結果:

3. 自定義排序

按照“語文、數學、英語”順序排序,涉及到自定義排序:order by field()的使用。


【本題考點】

1.涉及到“每個”的問題,要想到《猴子從零學會SQL》裏講過的用“分組彙總”或者“窗口函數”來解決

2.考查對多表聯結的應用

3.考查對order by中自定義排序的使用

推薦:如何從零學會SQL?


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章