我们有一个数据集,下面显示一个随机样本;
city|salesman_id|day|sale_qty
Chicago| 1 | 2017-01-16 | 24
Chicago| 1 | 2017-01-17 | 23
Chicago| 2 | 2017-01-16 | 20
NewYork| 1 | 2017-01-15 | 0
NewYork| 2 | 2017-01-15 | 10
NewYork| 1 | 2017-01-16 | 5
在这里,我们是肯定的给定组合salesman_id
和 day
独特。例如,salesman_id =1
并且day=2017-01-17
不能出现两次或多次。
现在的问题是,对于每个城市,找到平均销售数量。我的第一次尝试是
SELECT city,
AVG(sale_qty)
FROM table
GROUP BY city
第一种方法给出答案为;
City|avg_sales
Chicago| 22.33
NewYork| 5
出于直觉,我尝试了另一种方法。
WITH CTE1(
SELECT city,
salesman_id,
SUM(sale_qty) AS total
FROM table
GROUP BY city, salesman_id)
SELECT city,
AVG(total)
FROM CTE1
GROUP BY city
答案为:
city| avg_sales
Chicago| 33.5
NewYork| 7.5
我可以看到答案有所不同。我真的很想了解这种差异的根本原因是什么,其次,在使用Group By
子句时应仔细考虑哪些因素。这将帮助我避免Group By
将来盲目使用子句。提前致谢。
第一个计算数据中每个城市的平均销售额。平均一天的营业员在城市的平均销售额是多少?
第二个计算城市中每个销售人员的平均总销售额。全天营业员在城市的平均销售额是多少?
这些是完全不同的。没有理由期望他们甚至会接近。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句