在Teradata SQL Assistant中转换和求和前5名结果

在Teradata SQL Assistant中转换和求和前5名结果,sql,sum,teradata,transpose,Sql,Sum,Teradata,Transpose,我有一个从Access转换的查询,目前在Teradata SQL Assistant中工作正常。提取的数据只是一个标准表,其中包含了我需要的所有数据 我想知道的是:是否可以在这个查询中添加一些东西,将所有曝光值相加,然后只显示前5个分区的最大到最小的总和(前5个分区中的最大到最小的总和)。另外,转换数据,使我的主题位于最左边的列 这是工作代码,细节省略 SELECT A.AS_OF_DT , B.DIVISION , B.CLASS , Sum(A.BALANCE/1000000) AS "B

我有一个从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
基本上,我希望列为以下内容:

分区|日期|

以下部门仅为按敞口汇总的前5个部门(日期以下)

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

谢谢

最终的结果是,我可以将一个数据粘贴到Excel中,而无需手动在Excel中转换数据,并编写公式,以便在基本查询的1000个结果中进行搜索,找到汇总各个分区,然后每月挑选前5个分区

谢谢


Shill

如果您的查询已经运行

尝试替换:

SELECT 
作者:


(第1行)

要获得每个分区的5个顶部,可以使用

将以下内容添加到查询的末尾:

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

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

这难道不只是返回通常会出现的前10行吗?哦,是的,对不起,我不太明白你在问什么,我试图总结所有分区的曝光量,所以在我有重复分区的情况下,曝光量的总和基本上是将1000行转化为50行(50个单独的分区)。然后我想把前五名的曝光量(从最大曝光量到最小曝光量,但只有前五名)拉出来,有什么方法可以做到吗?我会给这张照片,谢谢。不幸的是,这就是我一直在使用的东西。
QUALIFY ROW_NUMBER() over (PARTITION BY AS_OF_DATE,DIVISION order by (SUM (A.EXPOSURE/1000000))