考慮以下數據上該特定列的變化:檢測的歷史記錄表
history.data
=======================================
id |data_id| col1 | col2 | date
---+-------+-------+-------+-----------
1 |1 | 123 | 321 | 2017-08-01
2 |1 | 124 | 321 | 2017-08-03
3 |2 | 222 | 555 | 2017-08-05
4 |2 | 242 | 555 | 2017-08-07
5 |2 | 242 | 333 | 2017-08-11
所以這是history_data
表,我保持一定的表中的所有變化。 現在我需要獲取data
的每個當前條目在col1
列中的最後更改的日期。 在這種情況下所需的輸出應該是
data_id | date
--------+-----------
1 | 2017-08-03
2 | 2017-08-07
我需要這樣做在以下方面:
with cte1 as (
select distinct on(data_id)
data_id,
date::date
from data d
join history.data hd on hd.data_id = d.id
order by d.id, hd.date desc
)
因此,大家可以看到,現在我正準備最後的日期記錄更改,而不考慮發生更改的列。
任何人都可以請幫助我嗎?
爲什麼對'data_id = 2'您預計日期'2017-08-07',而不是'2017-08-11'? –
@OtoShavadze,因爲'2017-08-11'上的變化發生在'col2'上,但我只對'col1'上的變化感興趣。 –