2017-05-01 6 views
0

Hallo, ich möchte eine Tabelle abfragen und eine Auswahl eindeutig auf, aber mit anderen ordey durch, und ich möchte dies mit desc. Wie kann ich das tun?So wählen Sie distinct on mit unterschiedlicher Reihenfolge von Postgresql

CREATE TABLE test_dupl2(id SERIAL, letter_one TEXT, number_int INT, primary key (id)); 

INSERT INTO test_dupl2(letter_one,number_int) VALUES ('A',1), ('A',2), ('B',1), ('A', 9), ('B', 4); 

Meine Anfrage

select letter_one, number_int from 
    (SELECT DISTINCT ON (letter_one) letter_one, number_int FROM test_dupl2) as foo 
order by foo.number_int desc; 

Die falsche Ausgabe:

('A', 1), ('B', 1) 

Der Ausgang Ich möchte:

('A', 9), ('B', 4) 

Postgresql9.4

Antwort

1
select distinct on (letter_one) letter_one, number_int 
from test_dupl2 
order by 1, 2 desc; 

letter_one | number_int 
------------+------------ 
A   |   9 
B   |   4 
(2 rows) 
+0

Kannst du mir diesen Teil "order by 1, 2" desc @klin erklären? – 1pa

+0

Sortieren nach erster und zweiter Spalte, Abk. für 'order by letter_one, number_int desc'. – klin

+0

oww danke danke @klin !! – 1pa

Verwandte Themen