我想查询具有不同数据类型的多个变量的数据库。
我的查询如下所示:
SELECT var1, var2,
SUM( CASE WHEN var3 ='2008' AND var4='A1_U18' THEN var5 ELSE 0 END ) AS 'A1_U18_7',
SUM( CASE WHEN var3='2015' AND var4='A1_U18' THEN var5 ELSE 0 END ) AS 'A34_U15_0',
CASE WHEN var3 = '2015' AND var4 = 'A0_RISE' THEN var5 ELSE 0 END AS 'A0_RISE'
FROM dataset1
GROUP BY var1
实际上我不需要总结前两个查询的结果,但否则我会得到“0”作为输出。通过总和我得到了正确的答案。
但是,这种解决方法在“A0_RISE”的情况下不可行,因为数据类型是文本。如果没有 SUM 函数,我也会得到输出“0”。
如何获得所有变量的正确输出?如果您对 double 的 SUM 解决方法有更好的想法,我将非常感激!
最佳答案
也许使用 Max ?
SELECT var1, var2,
SUM( CASE WHEN var3 ='2008' AND var4='A1_U18' THEN var5 ELSE 0 END ) AS 'A1_U18_7',
SUM( CASE WHEN var3='2015' AND var4='A1_U18' THEN var5 ELSE 0 END ) AS 'A34_U15_0',
MAX(CASE WHEN var3 = '2015' AND var4 = 'A0_RISE' THEN var5 ELSE '' END ) AS 'A0_RISE'
FROM dataset1
GROUP BY var1
关于MySQL 不带 WHERE 的多条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42247567/