有没有办法避免在SELECT查询中重复列表达式?我想除以列的总和和计数,但希望使用指定的名称,而不是重复SUM(value)/COUNT(value)或使用子查询。这个是可能的吗?如果是这样的话,这是通过不重复计算和计数来加快查询速度,还是mysql还记得已经计算过的表达式?
SELECT datalist.type, SUM(value) AS type_sum, COUNT(value) AS type_count, type_sum/type_count
FROM (...) AS datalist
GROUP BY datalist.type抛出:#1054 -字段列表中未知列“type_sum”
发布于 2018-09-12 16:19:24
除非您将其放在外部查询中,否则这是唯一的方法。
SELECT datalist.type, SUM(value) AS type_sum, COUNT(value) AS type_count, SUM(value)/COUNT(value)
FROM (...) AS datalist
GROUP BY datalist.type发布于 2018-09-12 16:39:38
解决方法之一是在预定义的计算中使用别名表,然后从外部表调用它,例如:
select d.type_sum/d.type_count as dividedValue from (SELECT datalist.type, SUM(value)
AS type_sum, COUNT(value) AS type_count
FROM (...) )AS d
GROUP BY d.typehttps://stackoverflow.com/questions/52298881
复制相似问题