【问题标题】:SELECT MAX for multipleSELECT MAX 多个
【发布时间】:2019-12-20 12:25:49
【问题描述】:

我想在一个查询中找到两个(或多个)课程的用户 ID 和最大成绩单记录,但我只获得这两个课程的一个最大记录,即如果我用户参加了两个课程,我只会得到他上一堂课的最高记录,不是两门课的最高记录。

我想获得两个班级的最大记录。 这就是我所拥有的:

select userid, max(transcriptid)
from chris_dwh.ekp_transcript_v t
where t.learningid in ('EKP000000708', 'EKP000000523')

当我想看到类似的东西时,我的结果是一个 userid 和一个 transcriptid

userA    EKP009037723
userA    EKP009036301
userB    EKP009057809
userB    EKP008479198

【问题讨论】:

  • 向我们展示一些示例表数据,以及匹配的预期结果。
  • 您有一个没有GROUP BY 的聚合查询。这在语法上是不正确的。
  • 语义正确。
  • t 是一个糟糕的表别名。为 ekp_transcript_v 选择有意义的内容,例如 eetekpt

标签: sql select max


【解决方案1】:

您只想将learningid 添加到您的group by 吗?

select t.userid, max(t.transcriptid)
from chris_dwh.ekp_transcript_v t
where t.learningid in ('EKP000000708', 'EKP000000523')
group by t.userid, t.learningid;

【讨论】:

    猜你喜欢
    • 2016-08-25
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2018-11-29
    相关资源
    最近更新 更多