[英]Pivot table in teradata sql
我有这样的数据:
ID Result
1 value1
2 value1
2 value2
3 value1
4 value1
4 value2
4 value3
我如何像在Excel中那样在Teradata SQL中完成数据透视表。
ID Value1 Value2 ...
1 count of Value1 for ID 1 count of Value2 for ID 1 ...
2 count of Value1 for ID 2 count of Value2 for ID 1 ...
3 ... ... ...
假设存在大量的ID和数量可变的值。
SELECT sum(case when Result='Value1' then ID end) "Value1"
, sum(case when Result='Value2' then ID end) "Value2"
FROM your_table
GROUP BY null;
恐怕这里无法添加太多上下文,除非这是可以在TD v15.x以上版本中实现数据透视的方式
因此,我找到了答案,并且想与您分享。首先,您需要重新计算数据以了解id || Value的计数。
CREATE TABLE myTable_count as (
SELECT ID, Result, count(1) as countOfResult
FROM myTable
group by ID, Result
) WITH DATA
然后,您可以进行数据透视,但是您必须知道结果的名称
SELECT ID,
sum(CASE WHEN Result='Value1' then countOfResult else NULL END) Value1,
sum(CASE WHEN Result='Value2' then countOfResult else NULL END) Value2
FROM myTable_count
GROUP BY ID;
如果有帮助,请给它投票。
SELECT
id,
count(
CASE WHEN result1 = 'value1' THEN id END
) AS value1,
COUNT(
CASE WHEN result1 = 'value2' THEN id END
) AS value2,
COUNT(
CASE WHEN result1 = 'value3' THEN id END
) as value3
FROM
pivot_tb1
group by
1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.