【问题标题】:Combining Two Groups in SQL在 SQL 中组合两个组
【发布时间】:2019-10-10 19:15:13
【问题描述】:

我希望将两个组的指标组合在一个字段下,而该字段中的其他组保持独立。我该怎么办?

我正在提取运营指标并按不同的 pod 对它们进行分组。我有 pod A、B、C 和 D。我想组合 pod B 和 C 以获得 pod A、pod D 和 pod B_C 组合的指标。

SELECT pod, volume
FROM table
WHERE Date.closed_week BETWEEN STRFTIME_USEC(DATE_ADD(TIME_USEC_TO_WEEK(NOW(), 0), -4, 'Week'), '%F') AND STRFTIME_USEC(DATE_ADD(TIME_USEC_TO_WEEK(NOW(), 0), -1, 'Week'), '%F')
GROUP BY 1

以上为我提供了 pod A、B、C 和 D 的卷。但是,我正在寻找一种方法将 pod B 和 C 的卷组合成一行。 (显然这不是我的实际代码,但应该足以理解这一点。)

【问题讨论】:

  • 根据所提供的信息,您认为人们可以如何帮助您?表结构?样本输入?预期输出?读这个。 stackoverflow.com/help/how-to-ask
  • 你如何结合 B 和 C?这是一个总和,还是串联的字符串?

标签: sql dremel


【解决方案1】:

假设您使用 sum 进行聚合(从问题中不清楚),您可以像这样使用 sum 大小写:

SELECT sum(case when pod = 'A' then volume else 0 end) as PodA
    , sum(case when pod in ('B', 'C') then volume else 0 end) as PodBC
    , sum(case when pod = 'D' then volume else 0 end) as PodD
FROM table
WHERE Date.closed_week BETWEEN STRFTIME_USEC(DATE_ADD(TIME_USEC_TO_WEEK(NOW(), 0), -4, 'Week'), '%F') AND STRFTIME_USEC(DATE_ADD(TIME_USEC_TO_WEEK(NOW(), 0), -1, 'Week'), '%F')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 2022-09-27
    • 2013-05-31
    • 1970-01-01
    相关资源
    最近更新 更多