Python да SQL сораги оркали ёзувларни саралаш
Натижа сатрларини саралаш учун,
ORDER
BY буйругидан фойдаланиш керак.
Мисол
Бизнинг users жадвалимиздан барча
фойдаланувчиларни олиб, уларни ёши буйича
кичкинадан каттага караб саралаймиз:
query = "SELECT * FROM users ORDER BY age"
Бажарилган коднинг натижаси:
{'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}
Мисол
DESC буйруги ёрдамида саралаш тартибини
ўзгартирамиз:
query = "SELECT * FROM users ORDER BY age DESC"
Бажарилган коднинг натижаси:
{'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}
Мисол
Маоши 500 бўлган барча фойдаланувчиларни
олиб, уларни ёши буйича кичкинадан каттага караб
саралаймиз:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Бажарилган коднинг натижаси:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Мисол
Бирорта майдон бўйича эмас, балки бир нечта майдон бўйича саралаш мумкин. Келтирилган мисол учун барча фойдаланувчиларни олиб, аввал ёш ўсиш тартибида, клюн ёши бир хил бўлган фойдаланувчиларни эса маош ўсиш тартибида саралаймиз:
query = "SELECT * FROM users ORDER BY age, salary"
Бажарилган коднинг натижаси:
{'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}
Мисол
ORDER BY буйруги LIMIT билан
бирлаштириш мумкин. Бунда аввал саралаш
буйруги, сўнгра - лимит ёзилиши керак.
Келтирилган мисолда аввал ёзувларни ёш
ўсиш тартибида саралаймиз, сўнгра биринчи
3 тасини оламиз:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Бажарилган коднинг натижаси:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Амалий машқлар
Барча фойдаланувчиларни олиб, уларни маош ўсиш тартибида сараланг.
Барча фойдаланувчиларни олиб, уларни маош камайиш тартибида сараланг.
Барча фойдаланувчиларни олиб, уларни исми буйича сараланг.
Маоши 500 бўлган фойдаланувчиларни олиб,
уларни ёши буйича сараланг.
Барча фойдаланувчиларни олиб, уларни исми ва маоши буйича сараланг.
Фойдаланувчиларни маош ўсиш тартибида саралаб,
саралаш натижасидан биринчи 3 та
xодимни оланг.
Фойдаланувчиларни маош камайиш тартибида саралаб,
саралаш натижасидан биринчи 3 та
фойдаланувчини оланг.