题解 | 计算每日累计利润

计算每日累计利润

https://www.nowcoder.com/practice/c9b7a2f73eb54a3da4a81f15fd8a3665

select profit_id
,profit_date
,profit
,sum(profit) over (order by profit_date) as cumulative_profit
from daily_profits
order by profit_date;

1)窗口函数

SELECT

<列>,

窗口函数() OVER (

[PARTITION BY <分区列>]

[ORDER BY <排序列> [ASC|DESC]]

[窗口框架]

) AS 别名

FROM <表>

2)

一、聚合类窗口函数

SUM(), AVG(), MIN(), MAX(), COUNT()

二、排名类窗口函数

ROW_NUMBER()

行号(相同值不同号)

1,2,3,4

RANK()

排名(相同值并列但留空)

1,2,2,4

DENSE_RANK()

密集排名(相同值并列无空)

1,2,2,3

NTILE(n)

将数据分成n个桶

1,1,2,2,3

三、偏移分析类窗口函数

sql复制LAG(column, n)  -- 访问前n行值
LEAD(column, n) -- 访问后n行值
FIRST_VALUE(column) -- 窗口第一行
LAST_VALUE(column) -- 窗口最后一行

四、统计类窗口函数

sql复制PERCENT_RANK()  -- 排名百分比 (0-1)
CUME_DIST()     -- 累计分布 (0-1)
STDDEV(), VAR() -- 标准差和方差
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务