首页 / DB2 / 浅谈DB2在线分析处理函数
浅谈DB2在线分析处理函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了浅谈DB2在线分析处理函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2873字,纯文字阅读大概需要5分钟。
内容图文
SELECT * FROM 2 (SELECT 3 DISTINCT RTRIM(A.RECORD_ID),RTRIM(A.PO_ID),RTRIM(A.ANT_ID),B.CAT_ID,B.EXTRACT_DT,ROW_NUMBER()OVER(PARTITION BY B.CAT_ID ORDER BY B.EXTRACT_DT DESC)RN 4 5 FROM 6 --retreve 100 POs for each CAT_ID for last year from BDW 7 (SELECT RECORD_ID,PO_ID,CAT_ID,EXTRACT_DT,ANT_ID FROM TEAME.PO_ITEM 8 WHERE CAT_ID IN (‘4Q6‘, ‘4W8‘, ‘S86‘, ‘S89‘, ‘QU39‘, ‘U4Q0‘, ‘UQ41‘, ‘UQ43‘, ‘U89‘, ‘W24‘, ‘YQ44‘, ‘QY45‘, ‘QY50‘, ‘Y5Q1‘, ‘E0W4‘, 9 ‘W72‘, ‘8Q3‘, ‘0W3‘,‘Q75‘,‘73‘, ‘P74‘, ‘75‘, ‘P76‘, ‘77E‘, ‘P78‘,‘E03‘, ‘E05‘, ‘E06‘, ‘E07‘, ‘ED8‘ 10 , ‘WW9‘, ‘E37‘, ‘WW0‘, ‘DD3‘, ‘DS3‘, ‘E65‘, ‘7S4‘, ‘45‘, ‘CA1‘, ‘0QS4‘, ‘W31‘, ‘64‘, ‘9A4‘, ‘Y95‘, ‘QY96‘) 11 --AND DATE(EXTRACT_DT) >= DATE(CURRENT_DATE - 365 DAYS) AND DATE(EXTRACT_DT) <= DATE(CURRENT_DATE) 12 )B, 13 IP.COM C, 14 TEAME.PO_IA POIA, 15 TEAME.PO A 16 17 LEFT OUTER JOIN TEAME.P_G_M D 18 ON 19 D.RECORD_ID = A.RECORD_ID AND 20 D.PRCHORG_ID = A.PRCHORG_ID AND 21 D.PRCHGRP_ID = A.PRCHGRP_ID AND 22 D.PRCHMEM_UNIQ_ID = A.PRCHMEM_UNIQ_ID 23 24 WHERE 25 A.RECORD_ID = B.RECORD_ID AND 26 A.PO_ID = B.PO_ID AND 27 A.ANT_ID = B.ANT_ID AND 28 A.RECORD_ID = POIA.RECORD_ID AND 29 30 A.PO_ID = POIA.PO_ID AND 31 B.CAT_ID = C.CORPCOMMCODE AND 32 (COMGROUP IN (‘J‘, ‘D‘) 33 OR POIA.LEDGACCT_MINOR_NUM IN (‘123‘,‘422‘,‘1‘,‘21‘,‘324‘,‘123‘,‘442‘,‘123‘,‘FDF‘,‘FD‘)) 34 AND A.RECORD_ID > ‘ ‘ 35 AND DATE(A.EXTRACT_DT) >= DATE(CURRENT_DATE - 365 DAYS) AND DATE(A.EXTRACT_DT) <= DATE(CURRENT_DATE))RN 36 WHERE RN=1 37 WITH UR;接下我们主要来看这一句:ROW_NUMBER()OVER(PARTITION BY B.CAT_ID ORDER BY B.EXTRACT_DT DESC)RN
ROW_NUMBER()这个函数是用来给查询结果集编号,
OVER是一个表达式,它的作用是定义一个作用域(或者可以说是结果集),OVER前面的函数只对OVER定义的结果集起作用,
PARTITION BY用来给结果集分组, 和group by一样。
ORDER BY对分组后子组按某列排序。
最后用条件WHERE RN=2得到买个分组后的每个小组的前两行。
除了这个函数,我们可以扩展一下,了解下其他常用函数:
rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).
dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。
相比之下row_number是没有重复值的,每组内部排序后的顺序编号(组内连续的唯一的)。
FIRST_VALUE,用来求OVER 定义集合的最小值
LAST_VALUE,用来求OVER 定义集合的最大值。值得注意的是这两个函数有个参数,‘IGNORE NULLS‘ 或 ‘RESPECT NULLS‘,用来忽略NULL值和考虑NULL值
OLAP所有其他函数:
ROW_NUMBER
RANK
DENSE_RANK
FIRST_VALUE
LAST_VALUE
LAG
LEAD
COUNT
MIN
MAX
AVG
SUM
ROW_NUMBER
RANK
DENSE_RANK
FIRST_VALUE
LAST_VALUE
LAG
LEAD
COUNT
MIN
MAX
AVG
SUM
浅谈DB2在线分析处理函数
标签:ber style rom 数据 分组 log ack led 总结
本文系统来源:http://www.cnblogs.com/clarke157/p/6575788.html
内容总结
以上是互联网集市为您收集整理的浅谈DB2在线分析处理函数全部内容,希望文章能够帮你解决浅谈DB2在线分析处理函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。