看板 Database 關於我們 聯絡資訊
其實你已經差不多把方式都貼出來了,只差如何關聯而已 我的作法是拆成兩個子查詢,接著關聯,再做一個相除的動作 最後用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