如果它们具有相同的值,我想检查表中的列。
ID School_Name Student Status
1 Virginia Alex 2
2 Virginia John 2
3 Wonderbow Devi 1
4 San Antonio Lucas 1
5 San Antonio Larsa 2
如果每个status
的值为2
,如何检查列School_Name
。输出是这样的:
ID School_Name school_stat
1 Virginia TRUE
2 Wonderbow FALSE
3 San Antonio FALSE
因此,如果每个学校名称中的所有学生的状态均为2,则结果为TRUE。
当前查询:
SELECT *,SUM(case when status > 1 then TRUE else FALSE end) as school_stat from t_school
虽然查询提供了错误的输出。
答案 0 :(得分:0)
您可以使用条件聚合:
SELECT
School_Name,
IF(COUNT(1) = COUNT(IF(Status = 2, 1, NULL)), 'TRUE', 'FALSE') school_stat
FROM t_school
GROUP BY School_Name
在SQLFiddle中查看demo,如果你想做一些聚合事情,那么像id
这样的非聚合列在select中没有意义。
答案 1 :(得分:0)
使用
进行分组group by
子句对 school_name 。
实施例,
SELECT ID,School_Name,(case when status > 1 then 'TRUE' else 'FALSE' end) as school_stat from temp1
group by School_Name
order by ID asc;
请参阅demo。