Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 满足计数条件_Sql_Postgresql - Fatal编程技术网

Sql 满足计数条件

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_分数),它存储了学生数据和他们所就读中心的成绩

我想知道,例如,在任何一个中心,该表中的每个学生获得“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
同一个学生可能在同一年级,甚至不同年级,相同或不同中心的表格中出现多次

我特别想检查分数出现超过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;