在Teradata SQL Assistant中转换和汇总前5个结果

时间:2017-05-22 18:43:17

标签: sql sum teradata transpose

我有一个从Access转换的查询,目前在Teradata SQL Assistant中正常工作。提取的数据只是一个标准表,其中包含我需要的所有数据。

我想知道的是:可以在此查询中添加一些内容,它将基本上总结所有曝光值,然后仅按最大到最小的总和(前5个)显示前5个分区。此外,转置数据,以便我的主题是最左边的列。

这是工作代码,详细信息省略。

SELECT 
A.AS_OF_DT
, B.DIVISION
, B.CLASS
, Sum(A.BALANCE/1000000) AS "Bal in MMs"
, Sum(A.EXPOSURE/1000000) AS "Exp in MMs"
, Sum(CASE WHEN A.STATUS = 'NACC' THEN  (B.BALANCE/1000000) ELSE 0 END) AS "NPL Bal as MMs" 

FROM DB.TABLE1 A LEFT JOIN DB.TABLE2 B ON A.NAICS = B.NAICS_CD

WHERE A.AS_OF_DT= '2017-03-31'

GROUP BY 
    A.AS_OF_DT, 
    B.DIVISION, 
    B.CLASS 

ORDER BY SUM (A.EXPOSURE/1000000) DESC

基本上我希望列如下:

DIVISION | DATE |

DIVISION下面只是EXPOSURE(DATE)总结的前5个部门

如果需要,我可以尝试澄清。请告诉我。

谢谢!

最终结果是有一个我可以投入到Excel中的数据空间,而不需要在Excel中调整数据的手动工作以及编写公式来搜索基本查询的1000个结果,以查找各个部门的总结然后每个月挑选前5名。

谢谢!

抬价

2 个答案:

答案 0 :(得分:1)

要获得每个部门的5个顶部,您可以使用QUALIFY

将此添加到查询结尾:

QUALIFY ROW_NUMBER() over (PARTITION BY AS_OF_DATE,DIVISION order by (SUM (A.EXPOSURE/1000000))

对于您的其他问题,SQL Assistant不是一个演示工具,它不会满足您的要求。

答案 1 :(得分:0)

如果您的查询已经有效,

尝试更换:

SELECT 

人:

SELECT top 10

(第1行)