728x90

in PostgreSQL

SELECT FIRST_VALUE(VALUE) OVER(PARTITION BY STOCK_NAME ORDER BY DATE)
  FROM STOCK;

 

SQL Error [42601]: ERROR: Aggregate window functions with an ORDER BY clause require a frame clause

TSLA /  2023-08-13 /  200

TSLA /  2023-08-14 /  210

TSLA /  2023-08-15 /  220

TSLA /  2023-08-16 /  230 

 

 first_value๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ  ODRER BY ๊ตฌ๋ฌธ์—์„œ ๊ฐœ๋ณ„ Row์— ๋Œ€ํ•œ DATE๋ฅผ ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ• ์ง€ ์ง€์ •๋˜์ง€ ์•Š์•„ ์ƒ๊ธด ์˜ค๋ฅ˜

 

"order by value rows between [front] preceding and [back] following"์œผ๋กœ row์˜ ๊ธฐ์ค€ ๋Œ€์ƒ์„ window ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

SELECT FIRST_VALUE(VALUE) OVER(PARTITION BY STOCK_NAME ORDER BY DATE) (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
  FROM STOCK;

DATE์— ๋Œ€ํ•ด ์ „์ฒด ROW ์ •๋ ฌ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์‹œํ–‰ํ•œ๋‹ค.

 

order by value rows between 1 preceding and 2 following

=> 

 

 

๋ฐ˜์‘ํ˜•
๋‹คํ–ˆ๋‹ค