Books кестесі берілген (өрістер: Title, Genre, Price, Qty):
1 | Абай жолы | Роман | 2500 | 6
2 | Алгебра | Оқулық | 1800 | 8
3 | Физика | Оқулық | 1400 | 9
4 | Қобыланды | Эпос | 2200 | 4
5 | Қан мен тер | Роман | 3000 | 7
6 | Геометрия | Оқулық | 2000 | 3
Мына сұраныс орындалды:
SELECT Genre, SUM(Qty) FROM Books WHERE Price > 1500 GROUP BY Genre HAVING SUM(Qty) > 10;
Нәтиже қандай болады?
Жауап пен талдауды көрсетуЖауап пен талдауды жасыру
Дұрыс жауап
- CРоман — 13; Оқулық — 11
Талдау
1) WHERE Price > 1500 шарты 1, 2, 4, 5 және 6-жолдарды таңдайды; бағасы 1400 болатын «Физика» жолы алынып тасталады. 2) Жанр бойынша топтап, Qty қосындысын есептейміз: «Роман» — 6 + 7 = 13, «Оқулық» — 8 + 3 = 11, «Эпос» — 4. 3) HAVING SUM(Qty) > 10 қосындысы 10-нан үлкен топтарды ғана қалдырады, сондықтан «Эпос» тобы шығарылады. Нәтиже: «Роман — 13; Оқулық — 11». «Роман — 13; Оқулық — 20» нұсқасы WHERE ескерілмегенде, ал «Эпос — 4» бар нұсқа HAVING ескерілмегенде шығады. «Роман — 2; Оқулық — 2» нұсқасы қосындыны емес, жолдар санын береді.