首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SUM(IF(COND,EXPR,NULL)) and IF(COND,SUM(EXPR),NULL)

SUM(IF(COND,EXPR,NULL)) and IF(COND,SUM(EXPR),NULL)
EN

Stack Overflow用户
提问于 2017-03-03 21:25:55
回答 1查看 56关注 0票数 0

我正在通过解析类似Excel的公式来生成sql请求。

因此,对于给定的公式,我得到以下请求:

代码语言:javascript
复制
SELECT IF(COL1='Y', SUM(EXPR),NULL)
FROM Table

我没有得到我想要的结果。如果我像这样手动重写请求,它就会工作:

代码语言:javascript
复制
SELECT SUM(IF(COL1='Y', EXPR, NULL))
FROM Table

而且,如果我为COL1='Y'行添加一个GROUP BY语句,第一个请求会生成正确的值:

代码语言:javascript
复制
SELECT IF(COL1='Y', SUM(EXPR),NULL)
FROM Table
GROUP BY COL1

有没有办法在不使用GROUP BY语句的情况下保留第一个语法IF(COND, SUM(EXPR), NULL)并对其进行稍微编辑以使其工作?

EN

回答 1

Stack Overflow用户

发布于 2017-03-03 22:12:57

您必须使用GROUP BY,因为您使用的是SUM -否则SQL引擎无法告诉您希望如何汇总该列。

或者,您可以仅对此列进行总结:

代码语言:javascript
复制
SELECT SUM(EXPR)
FROM Table
WHERE COL1='Y'

但是,您必须为每个这样的列运行单独的查询,即:出于性能原因,不推荐。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42580116

复制
相关文章

相似问题

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