usunąć najnowszą wiersz BK

głosy
-1

Mam w polityce stołowych, gdzie jest dla nich BK

VIN + ProgramCode + ValidFrom

Struktura tabeli jest

ID, ProgramCode, VIN, ValidFrom, CreationDate

Problemem jest to, że muszę zachować tylko politykę z unikalnym VINi najnowszej wartości Creation_date, reszta musi być usunięta. Nie mam pojęcia, co kwerendy należy używać do niego przy użyciu grupy przez.

Utwórz 19/09/2018 o 13:35
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

użyć funkcji okna row_number

delete from
    (
    select * ,row_number() over(partition by ProgramCode, VIN, ValidFrom order by Creation_date desc) as rn
    ) as t where t.rn!=1

Uwaga: w przypadku dużych zbioru danych lepiej jest zachować unike danych w nowej tabeli, a następnie usunąć starą tabelę następnie zmień nazwę nowej tabeli w starej nazwy

Odpowiedział 19/09/2018 o 13:37
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more