0
我有一個SQLAnywhere的表是這樣的:SQL彙總最新的非空列值
id int not null,
inserted datetime not null,
modified datetime not null,
data1 varchar(20) null
data2 varchar(20) null
開發商沒有把一個唯一索引上的ID,現在有一幫行與同但行之間的data1和data2的值不同,包括一些空值。我需要解決這個問題,使用最早插入時間,最新修改時間和最新(修改時間)將具有相同ID的所有行滾動到新表中的單個行中。非null data1的值和data2(除非該id的所有行都爲null,在這種情況下,彙總的行值將爲空)。我不能只用最後一行;我需要每個列的最新非空值。
所以三行這樣的:
1, '2016-01-01', '2016-01-02', 'first', null
1, '2016-01-05', '2016-01-07', null, 'second'
1, '2016-01-10', '2016-01-12', 'third', null
...會捲起:
1, '2016-01-01', 2016-01-12', 'third', 'second'
我看不相等自聯接和窗口功能,但我無法讓他們爲單個列彙總最新的非空值。在一個查詢中有沒有一種很酷的SQL方法來做到這一點,或者我是否爲它編寫了一個Java程序?
感謝
完美!謝謝傑里米。 – alacrity