繁体   English   中英

Teradata SQL中的数据透视表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM