SQL 新手。 真的很新手……
以下代码产生所需的(并且正确的)输出:
SELECT
SUM (CASE WHEN Total < 2.00 THEN 1 ELSE 0 END) AS 'A',
SUM (CASE WHEN Total BETWEEN 2.00 and 6.99 THEN 1 ELSE 0 END) AS 'B',
SUM (CASE WHEN Total BETWEEN 7.00 AND 15.00 THEN 1 ELSE 0 END) AS 'C',
SUM (CASE WHEN Total > 15.00 THEN 1 ELSE 0 END) AS 'D'
FROM
invoices
ORDER BY
BillingCity;
A B C D
170 120 111 11
我想添加一个“E”列,其中应包含总计(412)。
不知道该怎么做。是的,我用 Google 搜索过。在这里看到一些帖子,但没有一个能满足我的要求。
我猜你正在寻找一个等于 A + B + C + D 的解决方案。它可能类似于......
但是,您的总范围(几乎)涵盖了 的所有可能值
Total
。也就是说,E 只是行数:count as 'E'
。我说你几乎涵盖了 Total 的所有可能值,但有一个微妙的错误。例如 Total 6.995 不会被计算在内。
这是 的一个常见问题
between
。要解决这个问题,您需要混合使用包含和排除边界。通常,您需要一个包含下限和一个排除上限。这有时写为[x,y)
。