回答

收藏

在SUM子句中使用LAG或Other函数

技术问答 技术问答 299 人阅读 | 0 人回复 | 2023-09-12

我在寻找关于我一直在努力的事情。Oracle SQL一些查询指导。/ }+ A$ J1 Y( i, Q/ c) N1 A' V0 {
我有一个数据表,包括时间戳和帮助票号…
- r4 h9 @7 x; v! z' k每次技术人员更改或记录票据时,相应的时间戳将与票据号码一起登录到数据库中。我想完成的工作是计算每个系列的票号,我不能使用它distinct,因为如果技术人员当天晚些时候再次使用票号,就不会再计算票号。请参考附图。8 |& l$ E8 A  |/ F
http://s13.postimg.org/i5gx4l4nb/sample.jpg
. C5 s4 U6 t1 S+ R; o( x使用滞后函数,我可以在行级标记票证,但不能添加到SUM在句子中实现最终目标。0 G9 |/ y8 `: U# P4 }# x! j4 @) m
CASE WHEN LAG(IPCS_AUDIT_HISTORY.ENTITYID,1) over (ORDER BY IPCS_AUDIT_HISTORY.HISTORYDATE)=IPCS_AUDIT_HISTORY.ENTITYID THEN 0 ELSE 1 END任何关于采取什么方向的想法或想法?
3 A6 _5 _$ F0 f9 y8 [) HSELECT  UPPER(IPCS_PLANNER.PLANNERSURNAME || ',' || IPCS_PLANNER.PLANNERFIRSTNAME) AS FULL_NAME, COUNT(DISTINCT IPCS_AUDIT_HISTORY.ENTITYID) AS TICKETS_COUNT, SUM(CASE WHEN LAG(IPCS_AUDIT_HISTORY.ENTITYID,1) over (ORDER BY IPCS_AUDIT_HISTORY.HISTORYDATE)=IPCS_AUDIT_HISTORY.ENTITYID THEN 0 ELSE 1 END) AS TOUCH_COUNTFROM   IPCS_AUDIT_HISTORY, IPCS_PLANNERWHERE  IPCS_AUDIT_HISTORY.PLANNERID=IPCS_PLANNER.PLANNERID and  TRUNC(IPCS_AUDIT_HISTORY.HISTORYDATE,'IW')='30-DEC-13'GROUP BY  UPPER(IPCS_PLANNER.PLANNERSURNAME || ',' || IPCS_PLANNER.PLANNERFIRSTNAME)               
- j, N2 o1 r6 y- V    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则