[Oracle] Sortowanie + distinct


(Marcin Obala) #1

Witam

Problem wygląda tak. Dla uproszczenia mamy 2 kolumny. W jednej nazwa w drugiej data i godzina. Przykładowo w nazwie od godziny 9:00 do 13:00 będzie zawsze to samo

Nazwa Data

BBB 2012-08-02 10:00

BBB 2012-08-02 10:05

BBB 2012-08-02 10:07

BBB 2012-08-02 10:10

BBB 2012-08-02 10:15

BBB 2012-08-02 10:17

AAA 2012-08-02 9:00

AAA 2012-08-02 9:05

AAA 2012-08-02 9:07

AAA 2012-08-02 9:10

AAA 2012-08-02 9:15

AAA 2012-08-02 9:17

W bazie niekoniecznie te dane są posortowane. I teraz jak widać po datach chciałbym dostać wynik

AAA

BBB

czyli według daty. Próbowałem tak

select disctinct nazwa from (select * from tabela order by data)

select nazwa from (select * from tabela order by data) group by nazwa

I nic. Dane są nie posortowane tak jakby na to wskazywało wewnętrzne zapytanie. Jak coś takiego zrobić?


(Sawyer47) #2

Nie jestem pewien czy rozumiem co dokładnie chcesz uzyskać. Nie mam też dużego doświadczenia z SQL, więc nie gwarantuję poprawności ani wydajności:

select nazwa from dp group by nazwa order by max(data) asc|desc

Czyli daje nazwy biorąc pod uwagę najnowsze daty.