我有一个奇怪的错误。我有如下所示的 SQL 代码:
SELECT
adverse_reaction_type_id,
SUM(CASE adverse_reaction_type_id WHEN 1 THEN `number` ELSE 0 END ) line,
SUM(CASE adverse_reaction_type_id WHEN 2 THEN `number` ELSE 0 END ) drug
FROM
core_reports_adverse_reactions,
...
WHERE
...
这适用于我的 MAMP 安装,但不适用于我的远程服务器。我假设某处有一个配置选项阻止它工作。
这是我得到的错误:
如果没有 GROUP BY 子句,则混合没有 GROUP 列的 GROUP 列 (MIN(),MAX(),COUNT(),...) 是非法的
我知道错误告诉我什么,但问题是我不想按任何东西分组。我想获得 where 位(为简洁起见在上面删除)匹配的所有结果,然后返回列SUM()
的number
(作为line
或drug
基于CASE
子句)。
所以本质上,无论子句匹配什么,WHERE
我想要返回的都是1行:
line | drug
-----------
10 | 32
有没有办法解决这个问题?或者我可以的任何方式GROUP BY nothing
或什么?