使用Group by的SQL命令出错?

VIG*_*H R 3 sql oracle

我是Oracle SQL的初学者.我正在使用SQL Developer.不执行此查询.我需要每个id如1001,1002有多少是没有状态和多少没有状态.提前致谢....

我用过这个SQL:

SELECT ID, COUNT(STATUS) 
FROM TABLE1 
WHERE 
GROUP BY ID, STATUS 
HAVING STATUS = YES OR STATUS = NO;
Run Code Online (Sandbox Code Playgroud)

我有这样的表:

id      school    status
--------------------------
1001    vani         YES
1002    sunbeam      YES
1001    shristri     YES
1002    jain         NO
1001    holycross    YES
1001    vani         NO
Run Code Online (Sandbox Code Playgroud)

我需要输出像

id    yesstatus   Nostatus
-------------------------
1001      3        1
1002      1        1
Run Code Online (Sandbox Code Playgroud)

Yog*_*rma 8

您当前的查询语法确实错误,但您可以执行条件聚合:

select id, 
       sum(case when status = 'YES' then 1 else 0 end) as yesstatus,
       sum(case when status = 'NO' then 1 else 0 end) as Nostatus      
from table1 t1
where status in ('YES', 'NO')
group by id;
Run Code Online (Sandbox Code Playgroud)