回答

收藏

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

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

我在寻找关于我一直在努力的事情。Oracle SQL一些查询指导。
, Q. d: t# `8 B# |$ ^' Y2 c我有一个数据表,其中包含时间戳和帮助台票号…
: R* D7 t/ O$ a) U; r. m每次技术人员更改或记录票据时,相应的时间戳将与票据号码一起登录到数据库中。我想完成的工作是计算每个系列的票号,我不能使用它distinct,因为如果技术人员当天晚些时候再次使用票号,就不会再计算票号。请参考附图。! L& O' {& s7 s
http://s13.postimg.org/i5gx4l4nb/sample.jpg* `% y1 [; z/ E4 G: B, }/ w
使用滞后函数,我可以在行级标记票证,但不能添加到SUM在句子中实现最终目标。
6 O. E4 Y& f, p. LCASE WHEN LAG(IPCS_AUDIT_HISTORY.ENTITYID,1) over (ORDER BY IPCS_AUDIT_HISTORY.HISTORYDATE)=IPCS_AUDIT_HISTORY.ENTITYID THEN 0 ELSE 1 END任何关于采取什么方向的想法或想法?. \6 X3 ]6 i7 Q# o. q
SELECT  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)                ( Z# ]* `( H: z. C3 P0 ^5 j9 X$ U
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则