開窗函式的另外一種方式

萌哥-爱学习發表於2024-08-18

https://leetcode.cn/problems/game-play-analysis-iii/solutions/286941/chao-xiang-xi-tu-jie-zi-lian-jie-by-piajun

===如下第一種最簡單的 開窗


select 
player_id , 
event_date , 
 

sum(games_played) over (partition by player_id
order by  event_date  asc  ) games_played_so_far 

from  activity
order by games_played_so_far desc
===如下是第二種方法 
select t1.player_id,
       t1.event_date,
       sum(t2.games_played) games_played_so_far
from Activity t1,Activity t2
where t1.player_id=t2.player_id
  and t1.event_date>=t2.event_date
group by t1.player_id,t1.event_date;

作者:piajun
連結:https://leetcode.cn/problems/game-play-analysis-iii/solutions/286941/chao-xiang-xi-tu-jie-zi-lian-jie-by-piajun/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

小白第一次做沒有用group by,結果就只得到了一條結果sum=33,透過上面的分析明白了當時的sum()其實求得的是前兩部分選出來的灰色部分的總和,即5+5+6+5+6+1+0+0+5=33.因此需要使用group by分組才可以得出對應結果。

作者:piajun
連結:https://leetcode.cn/problems/game-play-analysis-iii/solutions/286941/chao-xiang-xi-tu-jie-zi-lian-jie-by-piajun/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

相關文章