其實你已經差不多把方式都貼出來了,只差如何關聯而已
我的作法是拆成兩個子查詢,接著關聯,再做一個相除的動作
最後用WHERE篩選即可,可能不是最好的作法,但應該很好懂
首先先列出各個Customer於Product總銷售量的子查詢(TB1):
SELECT Customer,Product,SUM(Amount) AS Amount_total
FROM TABLE1
GROUT BY Customer,Product
再列出各個Product的總銷售量之子查詢如下(TB2):
SELECT Product,SUM(Amount) AS Amount_total
FROM TABLE1
GROUT BY Customer
最後結果是:
SELECT DISTINCT TB1.Product
FROM (子查詢1) AS TB1
LEFT JOIN (子查詢2) AS TB2
ON TB1.Product=TB2.Product
WHERE (TB1.Amount_total/TB2.Amount_total) >= 0.5
※ 引述《pttsasho (sasho)》之銘言:
: 假設現在有以下這個資料表
: Customer Product Amount
: A 甲 10
: A 乙 2
: A 乙 5
: B 丙 2
: B 甲 21
: C 乙 2
: D 乙 6
: E 丙 7
: . . .
: . . .
: . . .
: 如果我想找出 某項product中 某個customer 買的總數量佔總數量的比重大於50%的
: 以上述表格為例
: product 總數量 (sum(amount))
: 甲 31
: 乙 15
: 丙 9
: 其中各個customer 的 amount佔總數量的比重如下
: customer product 該客戶該產品的總數量 amount/sum(amount)
: A 甲 10 10/31 = 0.3xxxx
: A 乙 7 7/15 = 0.4xxxx
: B 甲 21 21/30 = 0.7
: B 丙 2 2/9 = 0.2xxx
: C 乙 2 2/15 = 0.1xxx
: D 乙 6 6/15 = 0.4
: E 丙 7 7/9 = 0.6xxx
: 查詢某項product中 某個customer 買的總數量佔總數量的比重大於50%的結果應該是
: product
: 甲
: 丙
: 想請教大家,這樣的查詢應該如何下指令呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.240.252.84