【问题标题】:Pivoting a simple table in SQL在 SQL 中透视一个简单的表
【发布时间】:2018-06-01 15:24:12
【问题描述】:

我有一个简单的两列表,我想将行转为列,这样这个表:

List      Count   
----      -----
Bugs        3   
Changes     5  

可以看起来像这个表:

Bugs    Changes
----     -----
 3         5   

我已经尝试使用展开列的 ETL 工具进行枢轴转换,但最终还是这样:

Bugs    Changes
----     -----
 3        null 
null       5

有什么方法可以在 SQL 中执行此枢轴操作吗?

【问题讨论】:

  • 您是否尝试点击 [pivot] 标签?
  • 考虑处理应用程序代码中的数据显示问题 - 或者只是旋转您的显示器。

标签: mysql sql pivot etl


【解决方案1】:

你可以这样聚合:

select sum(case when List = 'Bugs' then Count else 0 end) as Bugs,
       sum(case when List = 'Changes' then Count else 0 end) as Changes
from table t
where List in ('Bugs', 'Changes');

【讨论】:

  • 枢轴工作,但我在我期望 3 和 5 的两列中收到了一个空值。有什么想法吗?
  • 在 ('Bugs', 'Changes') 中添加 where 列表;对我没用。
  • @BobDuncan。 . .我怀疑你的List 的名字用左边的空格填充。
  • 你能澄清@Yogesh吗?我的代码如下所示:select MAX(case when idList = 'Bugs' then curcount end) as Bugs, MAX(case when idList = 'Changes' then curcount end) as Changes FROM tablename where idList in ('Bugs', 'Changes');
  • @BobDuncan。 . .您的代码看起来不错,您可以编辑表格的实际数据或结构吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-10
  • 2023-03-25
  • 1970-01-01
  • 2021-11-19
相关资源
最近更新 更多