我正在寻找关于Oracle SQL查询的一些指导,我一直在苦苦挣扎。
我有一张数据表,里面有时间邮票和服务台票号.
每次技术人员更改票证或记录便条时,相应的时间戳将与票证编号一起登录到数据库中。我想要完成的是在每个系列中计算出第一次出现的票号,我不能使用不同的,因为如果技术人员在当天晚些时候再次使用该票,它将不会再次计数该票。请参考附图。
http://s13.postimg.org/i5gx4l4nb/sample.jpg
使用延迟函数,我可以在行级别标记票,但我不能将它添加到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你对这件事的方向有什么想法或想法?
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_COUNT
FROM
IPCS_AUDIT_HISTORY,
IPCS_PLANNER
WHERE
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)发布于 2014-01-09 03:02:45
我可能误解了你的问题,但我相信你只需要在你的SUM()中添加SUM()
SUM(ColName) OVER(ORDER BY Col2 ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING)https://stackoverflow.com/questions/21010661
复制相似问题