Exams кестесі берілген:
id | student | grp | score
1 | Айдос | A | 80
2 | Мария | A | 60
3 | Данияр | B | 90
4 | Алина | B | 75
5 | Ержан | C | 50
6 | Софья | C | 70
7 | Тимур | A | 70
Сұраныс қандай нәтиже (grp — саны) қайтарады?
SELECT grp, COUNT(*) FROM Exams WHERE score >= 70 GROUP BY grp HAVING COUNT(*) >= 2;
Жауап пен талдауды көрсетуЖауап пен талдауды жасыру
Дұрыс жауап
- DA — 2; B — 2
Талдау
Алдымен WHERE score >= 70 шарты бойынша жолдар таңдалады: Айдос (A, 80), Данияр (B, 90), Алина (B, 75), Софья (C, 70), Тимур (A, 70). Содан кейін GROUP BY жолдарды топтар бойынша санайды: A — 2, B — 2, C — 1. HAVING COUNT(*) >= 2 шарты C тобын алып тастайды. Нәтиже: «A — 2; B — 2». «A — 3; B — 2; C — 2» нұсқасы WHERE ескерілмегенде шығады; «A — 1; B — 2» нұсқасы қатаң score > 70 шартын алғанда шығады; «A — 2; B — 2; C — 1» нұсқасы HAVING ескерілмегенде шығады.