Sql 满足计数条件
我有一个表格(stu_分数),它存储了学生数据和他们所就读中心的成绩 我想知道,例如,在任何一个中心,该表中的每个学生获得“A”和“B”等的次数 斯图大学成绩Sql 满足计数条件,sql,postgresql,Sql,Postgresql,我有一个表格(stu_分数),它存储了学生数据和他们所就读中心的成绩 我想知道,例如,在任何一个中心,该表中的每个学生获得“A”和“B”等的次数 斯图大学成绩 stu_ID|grade1|grade2|Grade3|center 1 A A C 1 2 B B B 2 3 C C A 1 1 C A C 2 同
stu_ID|grade1|grade2|Grade3|center
1 A A C 1
2 B B B 2
3 C C A 1
1 C A C 2
同一个学生可能在同一年级,甚至不同年级,相同或不同中心的表格中出现多次
我特别想检查分数出现超过3次或更多次的地方,以及它们存在于多少个中心
因此,最终输出应如下所示:
Stu_ID|Grade|Count|centercount
1 A 3 2 (As they accquired 'A' from 2 centres)
1 C 3 2
2 B 3 1 (As they only exist in 1 centre)
3 C 2 1
3 A 1 1
为什么有3个不同的年级栏?@jarlh有3个不同的科目
select
stu_id,
grade,
sum(count) count,
count(distinct center) centercount
from (
select stu_id, grade, center, count(*)
from stu_grades,
lateral unnest(array[grade1, grade2, grade3]) grade
group by 1, 2, 3
) s
group by 1, 2
order by 1, 2;