Tietueiden lajittelu SQL-kyselyllä Pythonissa

Jotta voit lajitella tulosrivit, sinun on käytettävä komentoa ORDER BY.

Esimerkki

Valitaan taulustamme users kaikki käyttäjät ja lajitellaan heidät iän mukaan pienimmästä suurimpaan:

pythonquery = "SELECT * FROM users ORDER BY age"

Suoritetun koodin tulos:

python{'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}

Esimerkki

Muutetaan lajittelujärjestystä käyttämällä komentoa DESC:

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

Suoritetun koodin tulos:

python{'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}

Esimerkki

Valitaan kaikki käyttäjät, joiden palkka on 500 ja lajitellaan heidät iän mukaan pienimmästä suurimpaan:

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

Suoritetun koodin tulos:

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

Esimerkki

Voit lajitella usean kentän, ei vain yhden kentän mukaan. Esimerkiksi valitaan kaikki käyttäjät ja lajitellaan heidät ensin iän mukaan nousevaan järjestykseen, ja käyttäjät, joilla on sama ikä, lajitellaan palkan mukaan nousevaan järjestykseen:

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

Suoritetun koodin tulos:

python{'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}

Esimerkki

Komentoa ORDER BY voidaan yhdistää komentoon LIMIT . Tällöin lajittelukomennon on oltava ensin, ja sitten - rajoitus. Seuraavassa esimerkissä lajitellaan ensin tietueet iän mukaan nousevaan järjestykseen, ja sitten otetaan ensimmäiset 3 kappaletta:

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

Suoritetun koodin tulos:

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

Käytännön tehtävät

Задание 1

Nouda kaikki käyttäjät ja lajittele heidät palkan mukaan nousevaan järjestykseen.

Задание 2

Nouda kaikki käyttäjät ja lajittele heidät palkan mukaan laskevaan järjestykseen.

Задание 3

Nouda kaikki käyttäjät ja lajittele heidät nimen mukaan.

Задание 4

Nouda käyttäjät, joiden palkka on 500 ja lajittele heidät iän mukaan.

Задание 5

Nouda kaikki käyttäjät ja lajittele heidät nimen ja palkan mukaan.

Задание 6

Lajittele käyttäjät palkan mukaan nousevaan järjestykseen ja ota ensimmäiset 3 työntekijää lajittelun tuloksesta.

Задание 7

Lajittele käyttäjät palkan mukaan laskevaan järjestykseen ja ota ensimmäiset 3 käyttäjää lajittelun tuloksesta.