SELECT `2级类别名称`,AVG(`单笔销售额`) AS `平均销售额`,count(`数量`)
FROM `表格202306`
GROUP BY `2级类别名称`
HAVING `单笔销售额` < `平均销售额`;
不知道错在了哪里,我是想求每个2级类别名称,和对应2级类别名称的平均销售额,以及低于平均销售额的商品数量。
但是程序报错,“1054-Unknown column '单笔销售额' in 'having clause'
SELECT `2级类别名称`,AVG(`单笔销售额`) AS `平均销售额`,count(`数量`)
FROM `表格202306`
GROUP BY `2级类别名称`
HAVING `单笔销售额` < `平均销售额`;
不知道错在了哪里,我是想求每个2级类别名称,和对应2级类别名称的平均销售额,以及低于平均销售额的商品数量。
但是程序报错,“1054-Unknown column '单笔销售额' in 'having clause'
问题出在HAVING子句中使用了别名单笔销售额
,而在HAVING子句中无法使用别名进行筛选。解决这个问题有两种方式:
SELECT `2级类别名称`, AVG(`单笔销售额`) AS `平均销售额`, COUNT(`数量`)
FROM (
SELECT `2级类别名称`, `单笔销售额`, `数量`
FROM `表格202306`
) AS subquery
GROUP BY `2级类别名称`
HAVING `单笔销售额` < AVG(`单笔销售额`);
WITH subquery AS (
SELECT `2级类别名称`, `单笔销售额`, `数量`
FROM `表格202306`
)
SELECT `2级类别名称`, AVG(`单笔销售额`) AS `平均销售额`, COUNT(`数量`)
FROM subquery
GROUP BY `2级类别名称`
HAVING `单笔销售额` < AVG(`单笔销售额`);
这样就可以正确地筛选出单品销售额小于每个类别销售均值的商品数量了。