MySQL动态转置/表的转轴

时间:2014-09-24 16:20:36

标签: mysql sql pivot unpivot

我一直试图转动一个非常样本的表格:

TYPE       | COUNT
___________________
'CHAINS'   | '38'
'INDEP'    | '64'
'SUPER'    | '25'
是的,就这么简单。我一直在阅读教程,Stackoverflow的答案,我一直在寻找一个关于转换表的好教程。我无法理解它并且我无法完成以下结果:

CHAINS | INDEP | SUPER
_______________________
38     | 64    | 25

我知道还有其他类似的问题,但我无法从阅读中得到重点。大多数示例使用多个表来解释或只是没有解释的代码,我无法取消执行此操作所需的内容。有人可以详细解释一下我如何完成这个透视表?

感谢很多!!


编辑1:

通过我读过的教程,我已经设法得到以下内容:

CHAINS | INDEP | SUPER
_______________________
38     | NULL  | NULL
NULL   | 64    | NULL
NULL   | NULL  | 25

我希望数据在没有那些null的单行中。 我知道有关于此的教程和答案,但我只是不明白。我想解释一下这个数据透视表的逻辑是什么。

@bluefeet告诉我,我需要一个聚合函数。使用sum(),我得到了一行


编辑2:

这是我正在使用的查询(thansk到@bluefeet),但它不是动态的:我无法确定我需要哪些列。

SELECT
  sum(case when sq.TYPE = 'CHAINS' then sq.COUNT end) AS CHAINS,
  sum(case when sq.TYPE = 'INDEP' then sq.COUNT end) AS INDEPE,
  sum(case when sq.TYPE = 'SUPER' then sq.COUNT end) AS SUPER
from subquery1 sq

如何使用动态查询获得类似的结果? 致谢

0 个答案:

没有答案