⊗pyPmDBNSr 115 of 129 menu

Sortowanie rekordów za pomocą zapytania SQL w Pythonie

Aby posortować wiersze wyniku, trzeba skorzystać z polecenia ORDER BY.

Przykład

Pobierzmy z naszej tabeli users wszystkich użytkowników i posortujmy ich według wieku od najmniejszego do największego:

query = "SELECT * FROM users ORDER BY age"

Wynik wykonanego kodu:

{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400} {'id': 3, 'name': 'user3', 'age': 23, 'salary': 500} {'id': 2, 'name': 'user2', 'age': 25, 'salary': 500} {'id': 5, 'name': 'user5', 'age': 27, 'salary': 500} {'id': 6, 'name': 'user6', 'age': 28, 'salary': 900} {'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}

Przykład

Zmieńmy kolejność sortowania za pomocą polecenia DESC:

query = "SELECT * FROM users ORDER BY age DESC"

Wynik wykonanego kodu:

{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900} {'id': 6, 'name': 'user6', 'age': 28, 'salary': 900} {'id': 5, 'name': 'user5', 'age': 27, 'salary': 500} {'id': 2, 'name': 'user2', 'age': 25, 'salary': 500} {'id': 1, 'name': 'user1', 'age': 23, 'salary': 400} {'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}

Przykład

Pobierzmy wszystkich użytkowników z wynagrodzeniem 500 i posortujmy ich według wieku od najmniejszego do największego:

query = "SELECT * FROM users WHERE salary=500 ORDER BY age"

Wynik wykonanego kodu:

{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500} {'id': 2, 'name': 'user2', 'age': 25, 'salary': 500} {'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}

Przykład

Można sortować nie po jednym polu, a po kilku. Dla przykładu pobierzmy wszystkich użytkowników i posortujmy ich najpierw według rosnącego wieku, a użytkowników z tymi samymi wiekiem posortujmy według rosnącego wynagrodzenia:

query = "SELECT * FROM users ORDER BY age, salary"

Wynik wykonanego kodu:

{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400} {'id': 3, 'name': 'user3', 'age': 23, 'salary': 500} {'id': 2, 'name': 'user2', 'age': 25, 'salary': 500} {'id': 5, 'name': 'user5', 'age': 27, 'salary': 500} {'id': 6, 'name': 'user6', 'age': 28, 'salary': 900} {'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}

Przykład

Polecenie ORDER BY można łączyć z LIMIT. Przy tym najpierw trzeba pisać polecenie sortowania, a potem - limit. W następnym przykładzie najpierw posortujmy rekordy według rosnącego wieku, a potem weźmy pierwsze 3 sztuki:

query = "SELECT * FROM users ORDER BY age LIMIT 3"

Wynik wykonanego kodu:

{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400} {'id': 3, 'name': 'user3', 'age': 23, 'salary': 500} {'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}

Zadania praktyczne

Pobierz wszystkich użytkowników i posortuj ich według rosnącego wynagrodzenia.

Pobierz wszystkich użytkowników i posortuj ich według malejącego wynagrodzenia.

Pobierz wszystkich użytkowników i posortuj ich według imienia.

Pobierz użytkowników z wynagrodzeniem 500 i posortuj ich według wieku.

Pobierz wszystkich użytkowników i posortuj ich według imienia i według wynagrodzenia.

Posortuj użytkowników według rosnącego wynagrodzenia i pobierz pierwszych 3 pracowników z wyniku sortowania.

Posortuj użytkowników według malejącego wynagrodzenia i pobierz pierwszych 3 użytkowników z wyniku sortowania.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć