Har bir bo‘limda maoshlarni kattasidan boshlab qo‘yamiz. Maoshi bo‘limdagi eng katta ikkita har xil maoshdan biriga teng bo‘lgan xodimlarni chiqaring: bo‘lim nomi, xodim ismi, maoshi.
Masalan, bo‘limda maoshlar 9, 9, 7, 5 bo‘lsa — 9, 9 va 7 oladiganlar chiqadi.
Maslahat: oyna funksiyalari — DENSE_RANK() OVER (PARTITION BY ... ORDER BY ...).
Namunaviy ma‘lumotlar
| id integer | name text |
|---|---|
| 1 | IT |
| 2 | Moliya |
| 3 | Marketing |
| id integer | name text | department_id integer | manager_id integer | salary integer | hire_date text |
|---|---|---|---|---|---|
| 1 | Hamid Qodirov | 1 | NULL | 10000000 | 2021-11-11 |
| 2 | Sardor Ergashev | 2 | NULL | 18500000 | 2021-09-22 |
| 3 | Umida Aliyev | 3 | NULL | 14500000 | 2024-11-07 |
| 4 | Kamola Mirzayev | 1 | 1 | 19000000 | 2019-08-06 |
| 5 | Yusuf Xolmatov | 2 | 2 | 14500000 | 2023-09-26 |
| 6 | Kamola Toshmatov | 3 | 3 | 19000000 | 2021-10-08 |
| 7 | Bobur Karimov | 1 | 1 | 18000000 | 2024-09-17 |
| 8 | Madina Toshmatov | 2 | 2 | 17500000 | 2021-05-11 |
| 9 | Elyor Ergashev | 3 | 3 | 19500000 | 2018-11-25 |
| 10 | Vali Qodirov | 1 | 1 | 19000000 | 2019-04-07 |
| 11 | Madina Umarov | 2 | 2 | 16500000 | 2021-09-07 |
Jadval tuzilishi (CREATE TABLE)
CREATE TABLE departments (id INTEGER PRIMARY KEY, name TEXT); CREATE TABLE employees (id INTEGER PRIMARY KEY, name TEXT, department_id INTEGER, manager_id INTEGER, salary INTEGER, hire_date TEXT);
Natija
Uch ustun: department, employee, salary.
Namunaviy ma‘lumotlarda kutilgan natija
| IT | Kamola Mirzayev | 19000000 |
| IT | Vali Qodirov | 19000000 |
| IT | Bobur Karimov | 18000000 |
| Moliya | Sardor Ergashev | 18500000 |
| Moliya | Madina Toshmatov | 17500000 |
| Marketing | Elyor Ergashev | 19500000 |
| Marketing | Kamola Toshmatov | 19000000 |
Qatorlar tartibi ahamiyatsiz, ustunlar tartibi muhim. Yechim yashirin, kattaroq ma‘lumotlarda ham tekshiriladi.