【问题标题】:SQL Loop Over NameSQL 循环名称
【发布时间】:2023-01-21 00:49:07
【问题描述】:

我有:

TABLE1
    STUDENT CLASS   SCORE
    PAT A   14
    PAT A   10
    PAT B   13
    PAT B   20
    PAT C   11
    MARK    A   18
    MARK    A   13
    MARK    A   17
    MARK    A   10
    DAVIS   C   12
    JER A   15
    JER B   12
    JER C   20
    JER C   17
    BARB    C   14
    BARB    C   19
    BARB    C   11
    TOM A   18
    TOM A   12
    TOM B   16
    TOM B   12

并希望制作:

STUDENT CLASS   AVERAGESCORE
PAT A   12
PAT B   16.5
PAT C   11
DAVIS   A   14.5
DAVIS   B   NA
DAVIS   C   NA
MARK    A   NA
MARK    B   NA
MARK    C   12
JER A   15
JER B   12
JER C   18.5

这是这样做的:对于列表中的学生,计算班级和学生的平均(分数)

我尝试这个没有成功:

LIST1 = PAT, MARK, DAVIS, JER
select STUDENT, CLASS, AVG(SCORE) OVER(PARTITION BY STUDENT, CLASS) AS AVERAGE_SCORE
from TABLE1
where STUDENT in LIST1

【问题讨论】:

    标签: sql partition


    【解决方案1】:
    select student, class, avg(score)
    from table1
    where student in ('PAT', 'DAVIS', 'MARK', 'JER')
    group by student, class
    

    【讨论】:

      猜你喜欢
      • 2016-02-19
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多