累积决策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,否则你将得到该赛季所有球队的综合结果。它非常有效,谢谢我真的很感激你:)如果你在游戏开始前去掉逗号,效果会很好。非常感谢你,亚当