Skip to content

Commit 7937578

Browse files
Update SQL_Class_5.txt
1 parent 0e6b857 commit 7937578

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

SQL_Class_5.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,3 +232,49 @@ from daily_sales;
232232
select *,
233233
lead(sales_amount, 1) over(order by sales_date) as next_day_sales
234234
from daily_sales;
235+
236+
# Diff between lead and lag
237+
select *,
238+
lag(sales_amount, 1) over(order by sales_date) as pre_day_sales
239+
from daily_sales;
240+
241+
select *,
242+
lead(sales_amount, 1) over(order by sales_date) as next_day_sales
243+
from daily_sales;
244+
245+
246+
# How to use Frame Clause - Rows BETWEEN
247+
select * from daily_sales;
248+
249+
select *,
250+
sum(sales_amount) over(order by sales_date rows between 1 preceding and 1 following) as prev_plus_next_sales_sum
251+
from daily_sales;
252+
253+
select *,
254+
sum(sales_amount) over(order by sales_date rows between 1 preceding and current row) as prev_plus_next_sales_sum
255+
from daily_sales;
256+
257+
select *,
258+
sum(sales_amount) over(order by sales_date rows between current row and 1 following) as prev_plus_next_sales_sum
259+
from daily_sales;
260+
261+
select *,
262+
sum(sales_amount) over(order by sales_date rows between 2 preceding and 1 following) as prev_plus_next_sales_sum
263+
from daily_sales;
264+
265+
select *,
266+
sum(sales_amount) over(order by sales_date rows between unbounded preceding and current row) as prev_plus_next_sales_sum
267+
from daily_sales;
268+
269+
select *,
270+
sum(sales_amount) over(order by sales_date rows between current row and unbounded following) as prev_plus_next_sales_sum
271+
from daily_sales;
272+
273+
select *,
274+
sum(sales_amount) over(order by sales_date rows between unbounded preceding and unbounded following) as prev_plus_next_sales_sum
275+
from daily_sales;
276+
277+
# Alternate way to esclude computation of current row
278+
select *,
279+
sum(sales_amount) over(order by sales_date rows between unbounded preceding and unbounded following) - sales_amount as prev_plus_next_sales_sum
280+
from daily_sales;

0 commit comments

Comments
 (0)