Załóżmy, że wyodrębniam niektóre dane.Oracle: Pobranie rekordu z datą maksymalną
tj
SELECT A, date
FROM table
I chcę tylko zapis z datą max (dla każdej wartości A). Mógłbym napisać
SELECT A, col_date
FROM TABLENAME t_ext
WHERE col_date = (SELECT MAX (col_date)
FROM TABLENAME t_in
WHERE t_in.A = t_ext.A)
Ale moje zapytanie jest naprawdę długa ... jest tam najbardziej kompaktowy sposób za pomocą analitycznych funkcji, aby zrobić to samo?
Co masz na myśli mówiąc o krawatach? – Revious
@ Gik25 - Remis wystąpiłby, gdyby były, powiedzmy, dwa wiersze w 'TABLENAME', które miały taką samą wartość dla' A' i taką samą wartość dla 'SOME_DATE_COLUMN'. Twoje pierwotne zapytanie zwróci oba te wiersze, tak jak ja. Jeśli, z drugiej strony, używałbyś funkcji 'ROW_NUMBER', zwracany byłby tylko jeden z dwóch wierszy (chociaż wybór, który wiersz ma zostać zwrócony, byłby dowolny). –