Sql 如何计算数据并列出数据
我对SQL非常陌生 例如,一个有2个As和3个Cs的学生将产生两个记录:sid,a,2;希德,C,3。如果学生没有任何成绩,我不想把他们列出来Sql 如何计算数据并列出数据,sql,oracle,Sql,Oracle,我对SQL非常陌生 例如,一个有2个As和3个Cs的学生将产生两个记录:sid,a,2;希德,C,3。如果学生没有任何成绩,我不想把他们列出来 select sid, count(grade) from enrollments group by sid 我想要的示例: sid grade 123 A,2; C,3 456 A,3; B,1 我想这应该对你有用 select sid, listagg(gradecount, ';
select sid, count(grade) from enrollments
group by sid
我想要的示例:
sid grade
123 A,2; C,3
456 A,3; B,1
我想这应该对你有用
select sid,
listagg(gradecount, '; ') within group (order by gradecount) as grade
from (
select sid, grade || ',' || count(1) as gradecount
from enrollments
where grade is not null
group by sid, grade
) studentgradecount
group by sid;
如果它看起来令人困惑,请尝试单独运行内部查询以查看其功能:
select sid, grade || ',' || count(1) as gradecount
from enrollments
where grade is not null
group by sid, grade