一列计算2个值

时间:2019-05-18 22:41:49

标签: mysql sql

我对我想进行的SQL查询有疑问。 假设我在表格:学校中具有以下值的列,其中列:成绩

grades
9
9
4
4
4
1
1

现在,我想计算列等级中有9的次数和4中有4的次数,然后求和(2 + 3)。 所以我的SQL查询的输出将是5。 我只想计算4和9的值。

3 个答案:

答案 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;