【问题标题】:SQL Question using join to get correct sum score使用连接获得正确总分的 SQL 问题
【发布时间】:2020-07-16 00:00:50
【问题描述】:

我有 1 个名为 test_results 的表

name | score | test results
=============================
A    | 10    |   pass
B    | 20    |   pass
C    | 10    |   fail
D    | 0     |   fail
A    | 20    |   pass

并希望得到以下按总分 desc 排序的结果

name | total test number | time passed | total score
======================================================
A    |    2              |   2         | 30
B    |    1              |   1         | 20
C    |    1              |   0         | 10
D    |    1              |   0         | 0

【问题讨论】:

    标签: sql postgresql pivot subquery left-join


    【解决方案1】:

    使用条件聚合:

    select
        name,
        count(*) total_test_number,
        count(*) filter(where test_result = 'pass') time_passed,
        sum(score) total_score
    from test_results
    group by name
    

    【讨论】:

      猜你喜欢
      • 2020-11-09
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 2018-03-11
      相关资源
      最近更新 更多