如何在 sql (HANA) 中进行转置?
How to get the transpose in sql (HANA)?
我有一个查询 returns table 就像
SELECT (CASE WHEN type=1 THEN 'A'
WHEN type=2 THEN 'B'
END) as TYPE,COUNT(*) AS COUNT
from TYPE_TABLE GROUP BY TYPE
(我用 case 计算每种类型的数量)。
count type
_____ _____
123 A
124 B
120 C
我想让table变成这样
A B C
___ ___ ___
123 124 120
所以实际上我需要列的转置 count.How 我在 HANA 中得到这个吗?
因为只有3
你可以
SELECT SUM(CASE WHEN TYPE = 1 THEN 1 ELSE 0 END) AS A,
SUM(CASE WHEN TYPE = 2 THEN 1 ELSE 0 END) AS B,
SUM(CASE WHEN TYPE = 3 THEN 1 ELSE 0 END) AS C
FROM yourTable
纯SQL解决方案(SQL服务器)
select
[A]
, [B]
, [C]
from
(
select Type,[Count]
from ( SELECT (CASE WHEN type=1 THEN 'A'
WHEN type=2 THEN 'B'
.....
END) as TYPE,COUNT(*) AS COUNT
from TYPE_TABLE GROUP BY TYPE) Table1
) x
pivot
(
SUM(Count)
for Type in([A], [B], [C])
)p
我知道这是一个迟到的回复,但您当然可以在“计数”列的计算视图中创建 3 个限制措施并筛选类型 - A、B、C。
TA-DA,行将转换为列。
我有一个查询 returns table 就像
SELECT (CASE WHEN type=1 THEN 'A'
WHEN type=2 THEN 'B'
END) as TYPE,COUNT(*) AS COUNT
from TYPE_TABLE GROUP BY TYPE
(我用 case 计算每种类型的数量)。
count type
_____ _____
123 A
124 B
120 C
我想让table变成这样
A B C
___ ___ ___
123 124 120
所以实际上我需要列的转置 count.How 我在 HANA 中得到这个吗?
因为只有3
你可以
SELECT SUM(CASE WHEN TYPE = 1 THEN 1 ELSE 0 END) AS A,
SUM(CASE WHEN TYPE = 2 THEN 1 ELSE 0 END) AS B,
SUM(CASE WHEN TYPE = 3 THEN 1 ELSE 0 END) AS C
FROM yourTable
纯SQL解决方案(SQL服务器)
select
[A]
, [B]
, [C]
from
(
select Type,[Count]
from ( SELECT (CASE WHEN type=1 THEN 'A'
WHEN type=2 THEN 'B'
.....
END) as TYPE,COUNT(*) AS COUNT
from TYPE_TABLE GROUP BY TYPE) Table1
) x
pivot
(
SUM(Count)
for Type in([A], [B], [C])
)p
我知道这是一个迟到的回复,但您当然可以在“计数”列的计算视图中创建 3 个限制措施并筛选类型 - A、B、C。
TA-DA,行将转换为列。