我有一个从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名。
谢谢!
抬价
答案 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行)