【问题标题】:Roll up/group by two rows of data with 2 different values按具有 2 个不同值的两行数据汇总/分组
【发布时间】:2021-09-05 11:51:00
【问题描述】:

我希望标题有点解释性,但假设我有如下数据:

     Num1          Val1           Type             Code           String1          String 2
     1X2           GG             X11              123            NULL             NULL
     1X2           GG             X11              123            Test String      Test String

我希望实现的是这样的:

  Num1          Val1           Type             Code           String1          String 2
  1X2           GG             X11              123            Test String      Test String

我试过类似的东西:

  Select Num1, Val1, Type, Code, MAX(String1) as String1, and MAX(String2) as String2
  From table
  Group Num1, Val1, Type, Code

我只是用 MAX 测试它,因为我不知道这样的东西是否可以用 STRING 来实现,我将它与数值一起使用,但有没有办法将两行组合起来,如上所示?

【问题讨论】:

  • 您的代码应该可以工作。
  • 您的 GROUP 语句中有一个额外的 AND,但没有 BY

标签: sql sql-server tsql group-by


【解决方案1】:
  1. 额外的与
  2. GROUP BY(非 GROUP)
  Select Num1, Val1, Type, Code, MAX(String1) as String1, MAX(String2) as String2
  From table
  Group BY Num1, Val1, Type, Code

您的代码将适用于所示情况。但是,如果您有以下情况,它也会给您相同的答案:

 Num1          Val1           Type             Code           String1          String 2
     1X2           GG             X11              123         NULL            Test String
     1X2           GG             X11              123         Test String     NULL

根据您的具体要求,UPDATE 语句也可能是一种选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    相关资源
    最近更新 更多