我目前面临着一个问题,与多个条件,我正试图做这个条件。
SUM(IF SUM(B.answer) is lesser than 5),
SUM(IF SUM(B.answer) is between 6-10),
SUM(IF SUM(B.answer) is between 11-15),
SUM(IF SUM(B.answer) is greater than 16)
GROUP BY A.schlvl
期待这样的结果:
希望有人能理解我的解释
SELECT DISTINCT A.schlvl AS school, COUNT(DISTINCT(A.name)) AS NoOfChild, CASE WHEN SUM(B.answer)<5 THEN SUM(B.answer) END FROM child AS A INNER JOIN question AS B ON A.child_id = B.child_id
WHERE SUM(B.answer) IN (<5,>=6 && <=10,>=11 && <=15,>=16)
GROUP BY A.schlvl
2条答案
按热度按时间hm2xizp91#
不要在case when中使用sum,你可以做的是在case when中求和。
然而在这种情况下,当看到预期结果的截图时?
我想它需要伯爵来代替。
例子:
此外,如果需要对聚合(f.e.sum,count)进行限制,那么可以在having子句中进行限制。
我现在认为这里不需要。
自从得到了
<=5 or between 6 and 15 or >=16
几乎没有限制。你都需要吗?bbmckpt72#
如果需要对聚合结果进行筛选,则必须使用having而不是where,并且应该使用有效的or子句而不是range的in子句