我对我想进行的SQL查询有疑问。 假设我在表格:学校中具有以下值的列,其中列:成绩。
grades
9
9
4
4
4
1
1
现在,我想计算列等级中有9的次数和4中有4的次数,然后求和(2 + 3)。 所以我的SQL查询的输出将是5。 我只想计算4和9的值。
答案 0 :(得分:1)
SELECT COUNT(*) FROM SCHOOL WHERE grades IN (4,9)
为回应评论,您可以尝试对CASE
语句求和:
SELECT
SUM( CASE WHEN grades IN (4,9) THEN 1 ELSE 0 END ) AS MyFirstColumn,
SUM( CASE WHEN grades NOT IN (4,9) THEN 1 ELSE 0 END ) AS MySecondColumn
FROM school
为清楚起见,您可能希望尝试不加总和地运行以下查询,以确保您了解要实现的内容:
SELECT
CASE WHEN grades IN (4,9) THEN 1 ELSE 0 END AS MyFirstColumn,
CASE WHEN grades NOT IN (4,9) THEN 1 ELSE 0 END AS MySecondColumn
FROM school
如果您只对4、9和1年级感兴趣,我建议在末尾添加一个WHERE
子句,因为您会注意到第二列将对不包含4或9的行进行计数(这是可能不仅包括1)。
WHERE grades IN (1,4,9)
答案 1 :(得分:0)
如果我理解正确,您正在计算4或9的数字。这是查询。
Select count(1) From yourtable Where grades in (4,9)
答案 2 :(得分:0)
这是解决问题的一种方法:
SELECT
SUM(grades IN (4,9)) AS Column1,
SUM(grades =1) AS Column2
FROM school;