看板Examination
此題SQL的解題關鍵在於群組。
本題來說,主要是把SKU的欄位值群組化,相同的值歸為同一個群組
並計算相同值的數量與加總同一個群組內的Price值,並把Price加總
後為50的記錄給Show出來。
舉例來說:
OrderNumber SKU Price
A01 102 8000
A02 102 9000
A03 101 3000
A04 101 5000
A05 101 2000
------------------------------------------------
SKU欄位裡相同值的就會被視為一個群組,故分成102和101二個群組
,再來102這個群組有2個成員故 Count(*)其值為2,而
102這個群組裡有8000和9000這二個Price值,故Sum(Price)其值為17000
最後的having是記錄Show出來的條件,若Price加總後其值為50該筆處理
的記錄就要Show出來。
答案如下:
SKU_Count TotalRev SKU
1 50 101100
1 50 101200
----------------------------------------------------------
此題答案,經本人在SQL Server資料庫建立表格,並key進資訊,
執行題目的SQL語法,執行結果確實如上。
以下是實做結果:
http://ppt.cc/UJj5
: 題目如下:
: 四、(二)Select Count(*) As SKU_Count, Sum(Price) As TotalRev, SKU From
: Order_Item Group By SKU Having Sum(Price)=50;
: Order_Item
: ┌──────┬─────┬────┬───┬───────┐
: │OrderNumber │ SKU │Quantity│Price │ExtendedPrice │
: ├──────┼─────┼────┼───┼───────┤
: │ 1000 │ 201000 │ 1 │ 300 │ 300 │
: ├──────┼─────┼────┼───┼───────┤
: │ 1000 │ 202000 │ 1 │ 130 │ 130 │
: ├──────┼─────┼────┼───┼───────┤
: │ 2000 │ 101100 │ 4 │ 50 │ 200 │
: ├──────┼─────┼────┼───┼───────┤
: │ 2000 │ 101200 │ 2 │ 50 │ 100 │
: └──────┴─────┴────┴───┴───────┘
: 想法:
: Group By SKU,應該會分成4群(筆),但後面的Having Sum(Price)就看不懂了
: 印象中Having語法是針對Group By後的結果再下條件
: 但Group By後的4筆,每一筆都有各自的單一Price,
: 所以不知道Sum(Price)是要跟誰加總(或是執行之後的結果是?)
: 還請版上高手幫忙,謝謝!
: ==========================================
: 謝謝ARCHERDEVIL的提點,我的答案如下圖,請問正確嗎?謝謝!
: ┌──────┬─────┬────┐
: │SKU_Count │ TotalRev │ SKU │
: ├──────┼─────┼────┤
: │ 2 │ 100 │ 101100 │
: ├──────┼─────┼────┤
: │ 2 │ 100 │ 101200 │
: └──────┴─────┴────┘
--
陰律無情!是的,犯邪淫者,小如手淫、婚前性行為
均會遭折福減壽之惡報。國考者更不能犯淫邪,
否則文昌帝君會除去功名,不信請看此懺悔文:
http://lustwarn.blogspot.tw/
陰律無情!是的,犯邪淫者,若不懺悔發心改過永不再犯,
死後必入邪淫地獄,不信請看;
http://ppt.cc/3WTm
--
◆ From: 203.217.117.147
※ 批踢踢實業坊(ptt.cc)※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1370431424.A.CA5.html
推 wadersio:不會 我還聽過有人為了發大財 跑去姦屍 結果變大富豪 06/05 19:42
→ malowda:大大很努力不過好像不用多發這篇因為已經有其他大大解答了 06/05 20:20
推 ARCHERDEVIL:不 有人願意建資料庫跑一下很好阿 可以ensure答案正確 06/05 20:43
推 asdd:推!! 06/05 22:24
推 khlo926:推u9423504的熱心! 06/05 22:32