Кітапхананың деректер қорында үш кесте бар (NULL — мән жоқ):
Author(id, name): (1, 'Абай'), (2, 'Мұхтар'), (3, 'Ілияс'), (4, 'Сәкен')
Book(id, title, author_id, price): (1, 'Қара сөз', 1, 2500), (2, 'Өлеңдер', 1, 1800), (3, 'Абай жолы', 2, 4200), (4, 'Таңдамалы', 3, 3100), (5, 'Жолдастар', NULL, 2000), (6, 'Ақ бөкен', 3, 2800), (7, 'Көк сарай', 2, 3600)
Loan(book_id, member, days): (1, 'M1', 10), (3, 'M1', 20), (3, 'M2', 15), (4, 'M3', 7), (6, 'M2', 30), (7, 'M1', 12), (7, 'M3', 5), (7, 'M2', 9)
Book.author_id → Author.id және Loan.book_id → Book.id сыртқы кілттері ON DELETE CASCADE шартымен жасалған.
Сұраныстың нәтижесі қандай? SELECT a.name, COUNT(l.member) FROM Author a JOIN Book b ON b.author_id = a.id JOIN Loan l ON l.book_id = b.id GROUP BY a.name HAVING COUNT(l.member) > 2;
Дұрыс жауабы мен түсіндірмесі
Жауабы: Бір жол: Мұхтар, 5
Мұхтардың кітаптары 3 және 7: қарыздар 2 + 3 = 5. Абайда 1, Ілиясда 2 қарыз; HAVING COUNT > 2 тек Мұхтарды қалдырады.
«Мәліметтер қорын жасау» тақырыбынан тағы
- Деректер қоры индекстері туралы дұрыс тұжырымдарды таңдаңыз.
- SELECT COUNT(*) FROM Book b WHERE price > (SELECT AVG(price) FROM Book WHERE author_id = b.author_id); сұраныс...
- Emp(id, boss_id): (1, NULL), (2, 1), (3, 1), (4, 2), (5, 2), (6, 3), (7, NULL), (8, 7). Сұраныстың нәтижесі қа...
- SQL сұранысының нәтижесі қандай? WITH RECURSIVE f(a, b) AS (SELECT 0, 1 UNION ALL SELECT b, a + b FROM f WHERE...
- T(pts) кестесінде 90, 85, 85, 70, 70, 60 мәндері бар. Сұраныстың нәтижесі қандай? SELECT SUM(r) - SUM(d) FROM...
- Q1 = SELECT COUNT(*) FROM Book b LEFT JOIN Loan l ON l.book_id = b.id AND l.days >= 10; Q2 = SELECT COUNT(*) F...
- A(id) кестесінде 1, 2, 3, 4 мәндері, B(a_id) кестесінде 2, 2, 3, NULL, 5 мәндері бар. Сұраныстың нәтижесі қанд...
- SQL өрнегін оның нәтижесімен сәйкестендіріңіз.