Какое отличие между конструкциями HAVING и VALUES в SQL-запросах?

В SQL конструкции HAVING и VALUES служат разным целям и используются в разных контекстах:

Короткий ответ

Что ответить на собеседовании

В SQL конструкции HAVING и VALUES служат разным целям и используются в разных контекстах:

Подробный разбор

Ответ с пояснениями

В SQL конструкции HAVING и VALUES служат разным целям и используются в разных контекстах:

  • HAVING — это фильтр, который применяется к результатам группировки (GROUP BY). Он позволяет отфильтровать группы по условию, например, выбрать только те группы, у которых сумма значений больше определённого числа.

Пример:

SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 10;

Здесь HAVING отбирает отделы с более чем 10 сотрудниками.

  • VALUES — используется для вставки данных или создания временных наборов данных. Например, в INSERT-запросах или в конструкции с подзапросом.

Пример вставки:

INSERT INTO users (name, age) VALUES ('Ivan', 30), ('Anna', 25);

Или создание временной таблицы:

SELECT * FROM (VALUES (1, 'A'), (2, 'B')) AS temp(id, letter);

Итого, HAVING — это фильтр для агрегированных данных, а VALUES — способ задать конкретные значения для вставки или временных таблиц.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее