gpt4 book ai didi

mysql - SUM(IF(COND,EXPR,NULL)) 和 IF(COND, SUM(EXPR),NULL)

转载 作者:行者123 更新时间:2023-11-29 19:18:22 25 4
gpt4 key购买 nike

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

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

SELECT IF(COL1='Y', SUM(EXPR),NULL)
FROM Table

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

SELECT SUM(IF(COL1='Y', EXPR, NULL))
FROM Table

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

SELECT IF(COL1='Y', SUM(EXPR),NULL)
FROM Table
GROUP BY COL1

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

最佳答案

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

或者,您也可以仅总结本专栏:

SELECT SUM(EXPR)
FROM Table
WHERE COL1='Y'

但是,您必须为每个此类列运行单独的查询,请阅读:出于性能原因,不建议这样做。

关于mysql - SUM(IF(COND,EXPR,NULL)) 和 IF(COND, SUM(EXPR),NULL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42580116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com