【问题标题】:Count on multiple columns using different Where clause使用不同的 Where 子句计算多列
【发布时间】:2015-11-04 21:58:54
【问题描述】:

我将非常感谢一些帮助创建一个对多列执行计数然后将数据插入新表的查询。有一个表格存储每个学生基于评分周期的成绩。我编写了一个查询来计算学生在 Mark 1 中获得的 D 或 F 的数量。现在我想对 Mark 2 运行相同的计算。这是 Mark 1 代码的内容:

SELECT STU.ID, COUNT(GRD.M1) as DF_M1
INTO LCAPDEMO 
FROM STU JOIN
    GRD ON STU.SN = GRD.SN AND STU.SC = GRD.SC
WHERE GRD.M1 IN ('D+','D','D-','F+','F','F-')
GROUP BY STU.ID

对于 Mark 1 和 Mark 2 成绩,需要每晚运行此过程。

【问题讨论】:

    标签: sql count insert multiple-columns


    【解决方案1】:

    你只是想要条件聚合吗?

    SELECT STU.ID,
           SUM(CASE WHEN GRD.M1 IN ('D+', 'D', 'D-', 'F+', 'F', 'F-')
                    THEN 1 ELSE 0 END) as DF_M1,
           SUM(CASE WHEN GRD.M2 IN ('D+', 'D', 'D-', 'F+', 'F', 'F-')
                    THEN 1 ELSE 0 END) as DF_M2
    INTO LCAPDEMO 
    FROM STU JOIN
         GRD
         ON STU.SN = GRD.SN AND STU.SC = GRD.SC
    GROUP BY STU.ID;
    

    【讨论】:

    • 我有,但它已经内置了。只是将其排除在问题之外以帮助简化。这完美地工作。感谢您的宝贵时间。
    猜你喜欢
    • 2015-02-14
    • 1970-01-01
    • 2017-05-20
    • 2011-07-13
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多