【问题标题】:Selecting values from different columns in rows with the same ID从具有相同 ID 的行中的不同列中选择值
【发布时间】:2020-12-20 23:00:00
【问题描述】:

我有一个名为 COURSE_SELECT 的表,其中显示学生以及他们将能够访问哪些在线产品,但每个产品都位于不同的行中,即使每个产品都有自己的列。

表:COURSE_SELECT

+-----------+-----------+-----------+-----------+-----------+
| StudentID | Product_A | Product_B | Product_C | Product_D |
+-----------+-----------+-----------+-----------+-----------+
|   100     |     Y     |     N     |     N     |     N     |
+-----------+-----------+-----------+-----------+-----------+
|   100     |     N     |     Y     |     N     |     N     |
+-----------+-----------+-----------+-----------+-----------+
|   101     |     N     |     N     |     Y     |     N     |
+-----------+-----------+-----------+-----------+-----------+

供应商需要我发送一个 CSV 文件,每个学生只有一行,如下所示:

+-----------+-----------+-----------+-----------+-----------+
| StudentID | Product_A | Product_B | Product_C | Product_D |
+-----------+-----------+-----------+-----------+-----------+
|   100     |     Y     |     Y     |     N     |     N     |
+-----------+-----------+-----------+-----------+-----------+
|   101     |     N     |     N     |     Y     |     N     |
+-----------+-----------+-----------+-----------+-----------+

我不知道如何做到这一点。任何指导将不胜感激。

【问题讨论】:

    标签: sql select duplicates


    【解决方案1】:

    由于Y大于N,我将按StudentID分组并查询每个产品的最大值:

    SELECT   StudentID,
             MAX(Product_A) AS Product_A,
             MAX(Product_B) AS Product_B,
             MAX(Product_C) AS Product_C,
             MAX(Product_D) AS Product_D
    FROM     mytable
    GROUP BY StudentID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 2014-12-08
      • 1970-01-01
      • 2017-02-14
      相关资源
      最近更新 更多