[英]How to add column in table grouped by value and max value in date column using sql query?
我有一張桌子:
id date val
1 10.08.2022 10
1 12.08.2022 11
1 08.08.2022 15
1 16.08.2022 9
2 02.07.2022 2
2 01.07.2022 4
2 30.07.2022 7
我想創建兩個新列 last_v 和 max_v,它們等於每個 id 按日期的 last val 和每個 id 的最大 val。 所以想要的 output 是:
id date val last_v max_v
1 10.08.2022 10 9 15
1 12.08.2022 11 9 15
1 08.08.2022 15 9 15
1 16.08.2022 9 9 15
2 02.07.2022 2 2 7
2 01.07.2022 4 2 7
2 30.06.2022 7 2 7
我怎么能那樣做?
可以使用window功能!
select t.*,
first_value(val) over(partition by id order by dt desc) last_val,
max(val) over(partition by id) max_val
from mytable t
ID | dt | 值 | 最后一個值 | 最大值 |
---|---|---|---|---|
1個 | 2022-08-08 | 15 | 9 | 15 |
1個 | 2022-08-10 | 10 | 9 | 15 |
1個 | 2022-08-12 | 11 | 9 | 15 |
1個 | 2022-08-16 | 9 | 9 | 15 |
2個 | 2022-06-30 | 7 | 2個 | 7 |
2個 | 2022-07-01 | 4個 | 2個 | 7 |
2個 | 2022-07-02 | 2個 | 2個 | 7 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.