首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免选择查询中的冗余表达式

问避免选择查询中的冗余表达式
EN

Stack Overflow用户
提问于 2018-09-12 15:35:31
回答 2查看 43关注 0票数 0

有没有办法避免在SELECT查询中重复列表达式?我想除以列的总和和计数,但希望使用指定的名称,而不是重复SUM(value)/COUNT(value)或使用子查询。这个是可能的吗?如果是这样的话,这是通过不重复计算和计数来加快查询速度,还是mysql还记得已经计算过的表达式?

代码语言:javascript
复制
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”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-12 16:19:24

除非您将其放在外部查询中,否则这是唯一的方法。

代码语言:javascript
复制
SELECT datalist.type, SUM(value) AS type_sum, COUNT(value) AS type_count, SUM(value)/COUNT(value)
FROM (...) AS datalist
GROUP BY datalist.type
票数 1
EN

Stack Overflow用户

发布于 2018-09-12 16:39:38

解决方法之一是在预定义的计算中使用别名表,然后从外部表调用它,例如:

代码语言:javascript
复制
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.type
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52298881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档