累积决策Oracle SQL

累积决策Oracle SQL,sql,oracle11g,Sql,Oracle11g,你好 我有三个栏目:游戏日期、决定、记录 对于每一行(游戏日期),您可以使用一个窗口()获取每个日期/季节的总数 现在测试!: With GAME as (Select to_date('15-MAR-15','DD-MON-YY') as Game_date, 'W' as decision, '2014-2015' as Season from dual UNION ALL Select to_date('19-MAR-15','DD-MON-YY') as Game_date, 'L'

你好

我有三个栏目:游戏日期、决定、记录

对于每一行(游戏日期),您可以使用一个窗口()获取每个日期/季节的总数

现在测试!:

With GAME as
(Select to_date('15-MAR-15','DD-MON-YY') as Game_date, 'W' as decision, '2014-2015' as Season from dual UNION ALL
Select  to_date('19-MAR-15','DD-MON-YY') as Game_date, 'L' as decision, '2014-2015' as Season  from dual UNION ALL
Select  to_date('22-MAR-15','DD-MON-YY') as Game_date, 'L' as decision, '2014-2015' as Season  from dual UNION ALL
Select  to_date('24-MAR-15','DD-MON-YY') as Game_date, 'O' as decision, '2014-2015' as Season  from dual UNION ALL
Select  to_date('28-MAR-15','DD-MON-YY') as Game_date, 'W' as decision, '2014-2015' as Season  from dual UNION ALL
Select  to_date('01-APR-15','DD-MON-YY') as Game_date, 'W' as decision, '2014-2015' as Season  from dual )

--YOU ONLY NEED TO RUN THIS PART!!!    
SELECT Game_date AS "Date", Decision,
   SUM(CASE WHEN Decision = 'W' THEN 1 else 0 END) Over (partition by Season order by game_Date) || '-' || 
   SUM(CASE WHEN Decision = 'L' THEN 1 else 0 END) Over (partition by Season order by game_Date) || '-' || 
   SUM (CASE WHEN Decision = 'O' THEN 1 else 0 END) Over (partition by Season order by game_Date) AS "RECORD"
FROM Game
WHERE Season = '2014-2015' 
  --AND (Team_Visitor_ID = 1 OR Team_Home_ID = 1)

ORDER BY Game_Date desc
试试这个:

select TO_CHAR(Game_Date, 'DD MON ''YY') AS "DATE",
SUM(W) Over (order by Game_Date) || '-' ||
SUM(L) Over (order by Game_Date) || '-' || 
SUM(O) Over (order by Game_Date) AS "RECORD"
from (
 SELECT Game_Date,
 SUM (CASE WHEN Decision like 'W' THEN 1 END) as W, 
 SUM (CASE WHEN Decision like 'L' THEN 1 END) as L, 
 SUM (CASE WHEN Decision like 'O' THEN 1 END) as O
 FROM Game
 WHERE Season = '2014-2015' AND (Team_Visitor_ID = 1 OR Team_Home_ID = 1)
 GROUP BY Game_Date)
ORDER BY Game_Date DESC;

为什么在这种情况下使用like:像“2014-2015”这样的季节,为什么不相等…你应该写下预期结果或加入图片,而不是链接到它…不相等或相似会给出相同的结果?是的,相同但不同的查询成本为什么你按决策分组但不选择此字段?不按决策分组,那么你可能会得到预期结果f出现以下错误消息,尽管我在别名ORA-00923周围使用了双引号:FROM关键字not found where expectedWorking fine for me…屏幕截图显示了运行和结果。它们的顺序错误,但我已更正。xQbert,谢谢,这非常有效,但我需要在100多个游戏日期内执行此操作。这是正确的ng如果我需要选择每个日期,那将是非常痛苦的。你不必这样做。只需运行Select的底部部分。顶部部分模拟了你的表数据,而我没有创建表…因为我没有你的表。请确保取消注释team\u visitor\u ID,否则你将得到该赛季所有球队的综合结果。它非常有效,谢谢我真的很感激你:)如果你在游戏开始前去掉逗号,效果会很好。非常感谢你,亚当