Запити на вибірку: агрегатні функції, GROUP BY і JOIN

Додано: 7 жовтня
Предмет: Інформатика, 10 клас
14 запитань
Запитання 1

Яка агрегатна функція повертає кількість рядків?

варіанти відповідей

SUM()

COUNT()

AVG()

MAX()

Запитання 2

Для чого в SQL-запиті використовують GROUP BY?

варіанти відповідей

Щоб сортувати рядки результату

Щоб з'єднати дві таблиці за ключем

Щоб рахувати підсумки окремо по групах

Щоб обмежити кількість рядків

Запитання 3

Чим HAVING відрізняється від WHERE?

варіанти відповідей

HAVING фільтрує готові групи після GROUP BY

HAVING фільтрує рядки ще до групування

HAVING працює лише з текстовими стовпцями

HAVING сортує групи за спаданням

Запитання 4

Які твердження про LEFT JOIN правильні?

варіанти відповідей

Повертає всі рядки лівої таблиці

Рядок без пари отримує NULL у стовпцях правої таблиці

Повертає лише рядки, що мають пару в обох таблицях

Автоматично видаляє з результату рядки з NULL

Запитання 5

Запит SELECT release_year, COUNT(*) FROM tracks GROUP BY release_year; повернув 5 рядків. Що це означає?

варіанти відповідей

У таблиці tracks лише 5 треків

У таблиці є треки 5 різних років випуску

П'ять треків вийшли в одному й тому самому році

Запит автоматично обмежено до 5 рядків

Запитання 6

Учень пише SELECT artist_id, SUM(plays) FROM tracks WHERE SUM(plays) > 500000 GROUP BY artist_id; і отримує помилку. Як виправити запит?

варіанти відповідей

Замінити SUM на COUNT у SELECT і WHERE

Перенести ORDER BY перед WHERE

Взяти число 500000 в одинарні лапки

Перенести умову в HAVING після GROUP BY

Запитання 7

Чому в SQLite вираз ROUND(duration_sec / 60, 1) для треку тривалістю 245 с дає 4.0, а не 4.1?

варіанти відповідей

Ділення двох цілих чисел дає ціле, дріб відкинуто

ROUND у SQLite завжди округлює тільки вниз

Тривалість у таблиці зберігається як текст

SQLite взагалі не підтримує дробових чисел

Запитання 8

Потрібно вивести назви треків разом з іменами виконавців (tracks.artist_id посилається на artists.id). Які запити дадуть правильний результат?

варіанти відповідей

SELECT t.title, a.name FROM tracks t JOIN artists a ON a.id = t.id;

SELECT t.title, a.name FROM tracks t JOIN artists a ON t.artist_id = a.id;

SELECT title, name FROM tracks, artists;

SELECT t.title, a.name FROM tracks t JOIN artists a ON a.id = t.artist_id;

Запитання 9

Після додавання виконавця 'Нова група' без жодного треку запит з INNER JOIN artists і tracks та GROUP BY показує 6 виконавців, а не 7. Чому?

варіанти відповідей

Новий рядок ще не збережено в базі даних

COUNT не враховує щойно додані рядки

INNER JOIN відкидає виконавців без жодного треку

Ключ 7 конфліктує з уже наявним записом

Запитання 10

Аналітику потрібна кількість прослуховувань у кожному місті. У таблиці listens міста немає, воно зберігається в users. Який підхід правильний?

варіанти відповідей

Вручну дописати стовпець city у listens

Порахувати COUNT(*) у users з GROUP BY city

Обчислити SUM(city) у таблиці listens

З'єднати listens і users та групувати за city

Запитання 11

Які з цих питань до музичної бази потребують GROUP BY?

варіанти відповідей

Скільки треків випустив кожен виконавець

Скільки всього треків у базі

Яка середня тривалість треку в кожному жанрі

Скільки прослуховувань зробив кожен користувач

Запитання 12

ШІ на прохання 'топ-3 виконавці за прослуховуваннями' згенерував: SELECT name, plays FROM artists ORDER BY plays DESC LIMIT 3; Що з ним не так?

варіанти відповідей

LIMIT має стояти перед ORDER BY

ORDER BY не працює з числовими стовпцями

Запит правильний, помилок у ньому немає

У artists немає plays, потрібні JOIN з tracks і SUM

Запитання 13

Що повертає запит SELECT u.name, COUNT(*) FROM listens l JOIN users u ON u.id = l.user_id GROUP BY u.name ORDER BY COUNT(*) DESC LIMIT 1;?

варіанти відповідей

Найпопулярніший трек серед усіх користувачів

Користувача, який зареєструвався першим

Користувача з найбільшою кількістю прослуховувань

Користувача, який слухав найдовший трек

Запитання 14

Учень перевіряє SQL-запит, який написав ШІ. Які дії справді допоможуть переконатися, що запит правильний?

варіанти відповідей

Запустити на малих даних і звірити з ручним підрахунком

Перевірити, що всі стовпці існують у таблицях

Попросити той самий ШІ підтвердити правильність

Порівняти кількість рядків результату з очікуваною

Створюйте онлайн-тести
для контролю знань і залучення учнів
до активної роботи у класі та вдома

Створити тест
В прямому ефірі
Інтернет-конференція: Інклюзія та робота з дітьми з ООП: команда психолого-педагогічного супроводу