【问题标题】:How can I put data from the same column into separate columns with a group by?如何将同一列中的数据放入具有分组依据的单独列中?
【发布时间】:2016-05-16 03:13:03
【问题描述】:

我的数据:

trial  name  quantity
1      sam   1
1      mary  9
2      bill  5
2      mary  2

期望的输出:

name  1    2
sam   1    0
mary  9    2
bill  0    5

所需输出的第一行中的“1”表示数据中的第一次试验,“2”表示第二次试验。 Sam 没有参加第二次审判,Bill 也没有参加第一次审判(我们可以从数据中看到这一点)。 Sam 和 Mary 参加了第 1、9 数量的第一次试验。Mary 和 Bill 参加了第 2、5 数量的第二次试验。

假设有大量试验(100+),我想使用什么查询来获得我想要的输出?我认为 GROUP_CONCAT 是我想要的,但这似乎不适用于 0 数据。

【问题讨论】:

  • 真的很困惑为什么有人会因为“不清楚你在问什么”而想要关闭它——这个例子非常清楚。

标签: sql sqlite group-by


【解决方案1】:

使用条件聚合:

SELECT
    name,
    MAX(CASE WHEN trial = 1 THEN quantity ELSE 0 END) AS '1',
    MAX(CASE WHEN trial = 2 THEN quantity ELSE 0 END) AS '2'
FROM Tbl
GROUP BY name

ONLINE DEMO

【讨论】:

  • 我有大量的试验——还有其他方法吗?
  • 是的,您可以动态进行。我不太熟悉 sqllite 语法。
猜你喜欢
  • 1970-01-01
  • 2021-09-21
  • 2021-09-26
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多