作者jackghost (~~无相~~)
看板Database
标题Re: [SQL ] 查询语法该怎麽下?
时间Thu Apr 25 22:55:32 2013
其实你已经差不多把方式都贴出来了,只差如何关联而已
我的作法是拆成两个子查询,接着关联,再做一个相除的动作
最後用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