I have a table like this
+------+------+-------+--+
| Name | Date | Price | |
+------+------+-------+--+
| x | d1 | 50 | |
| x | d2 | 45 | |
| x | d3 | 55 | |
| x | d4 | 40 | |
| x | d5 | 48 | |
| x | d6 | 45 | |
| x | d7 | 44 | |
| y | d1 | 200 | |
| y | d2 | 205 | |
| y | d3 | 204 | |
| y | d4 | 189 | |
| y | d5 | 185 | |
| y | d6 | 187 | |
| y | d7 | 182 | |
+------+------+-------+--+
I want to find high price for each name and date in next 3 days.
OutPut:
+------+------+-------+---------+-----------+--+
| Name | Date | Price | High_pr | High_date | |
+------+------+-------+---------+-----------+--+
| x | d1 | 50 | 55 | d3 | |
| x | d2 | 45 | 55 | d3 | |
| x | d3 | 55 | 55 | d3 | |
| x | d4 | 40 | 48 | d5 | |
| x | d5 | 48 | 48 | d5 | |
| x | d6 | 45 | 45 | d6 | |
| x | d7 | 44 | 44 | d7 | |
| y | d1 | 200 | 205 | d2 | |
| y | d2 | 205 | 205 | d2 | |
| y | d3 | 204 | 204 | d3 | |
| y | d4 | 189 | 189 | d4 | |
| y | d5 | 185 | 187 | d6 | |
| y | d6 | 187 | 187 | d6 | |
| y | d7 | 182 | 182 | d7 | |
+------+------+-------+---------+-----------+--+
Tried using window function with following '3 day'
but not working.
The table is really big with many names spanning 5 years of data, need some optimum solution. Thank You
PS: Using PostgreSQL 12.4.