Мәліметтер қорының екі кестесі берілген. Employees (id, name, dept_id, salary): (1, Айдар, 1, 300); (2, Мария, 1, 250); (3, Серік, 2, 200); (4, Алия, 2, 400); (5, Данияр, 2, 150); (6, Ольга, 1, 350); (7, Берік, 3, 180); (8, Жанар, 2, 240); (9, Тимур, 3, 170). Departments (dept_id, title): (1, Сату); (2, IT); (3, Қойма). Сұраныс нәтижесінде не шығады (жолдар реті маңызды емес): SELECT title, AVG(salary) FROM Employees INNER JOIN Departments ON Employees.dept_id = Departments.dept_id WHERE salary >= 180 GROUP BY title HAVING COUNT(*) >= 3;
Жауап пен талдауды көрсетуЖауап пен талдауды жасыру
Дұрыс жауап
- BСату 300; IT 280
Талдау
1) INNER JOIN қызметкерлерді бөлімдермен dept_id бойынша байланыстырады. 2) WHERE топтастырудан бұрын орындалады және тек salary >= 180 жолдарын қалдырады: Айдар 300, Мария 250, Ольга 350 (Сату); Серік 200, Алия 400, Жанар 240 (IT); Берік 180 (Қойма). Данияр (150) мен Тимур (170) алынып тасталады. 3) GROUP BY title үш топ береді: Сатуда 3 жазба, IT-де 3 жазба, Қоймада 1 жазба. 4) HAVING COUNT(*) >= 3 Қойма тобын (1 жазба) алып тастайды. 5) AVG(salary): Сату (300 + 250 + 350) / 3 = 300; IT (200 + 400 + 240) / 3 = 280. Нәтиже: «Сату 300; IT 280».