Аналитик должен знать ответы на эти 10 вопросов по SQL: ОТВЕТЫ👉
Мы собрали достаточно кричащих котиков под предыдущим постом, поэтому выкладываю правильные ответы.
А если что-то показалось непонятным, смело пишите в комментариях, разберём подробнее!
Да. В LEFT JOIN сохраняются все строки из первой (левой) таблицы и соответствующие строки из второй (правой) таблицы. Порядок тут критически важен.
UNION удаляет дубликаты строк после объединения, а UNION ALL - нет.
Любая математическая операция с NULL вернет NULL.
Да, это называется self-join (слово self при этом писать не нужно, джойните как обычно)
COUNT по конкретному столбцу не будет включать NULL значения. COUNT(*) посчитает все строки.
Гарантированно - при обычном JOIN. В случаях с другими видами JOIN есть нюансы (в зависимости от того, к какой таблице условие)
Среди перечисленных операторов SELECT будет выполняться последним, несмотря на то, что пишется первым. Сначала будет определяться откуда берутся данные (FROM), потом какие (WHERE), потом условия группировки (GROUP BY) и только затем, что будет выведено (SELECT)
Оконные функции, например такие как: LAG(), LEAD()
WHERE фильтрует отдельные исходные строки таблицы и не может применяться к агрегирующим функциям. HAVING - наоборот фильтрует строки уже после группировки по значениям агрегирующих функций.
А 10-й вопрос я решила сделать через квиз ⌨️ В комментах к ним добавила объяснение
#sql_анна_в_данных
Мы собрали достаточно кричащих котиков под предыдущим постом, поэтому выкладываю правильные ответы.
А если что-то показалось непонятным, смело пишите в комментариях, разберём подробнее!
1.Может ли измениться результат запроса, если в LEFT JOIN поменять таблицы местами?
Да. В LEFT JOIN сохраняются все строки из первой (левой) таблицы и соответствующие строки из второй (правой) таблицы. Порядок тут критически важен.
2.В чем разница между UNION и UNION ALL?
UNION удаляет дубликаты строк после объединения, а UNION ALL - нет.
3.Сколько будет 5 + NULL?
Любая математическая операция с NULL вернет NULL.
4.Можно ли делать JOIN таблицы саму на себя?
Да, это называется self-join (слово self при этом писать не нужно, джойните как обычно)
5.Включает ли функция COUNT NULL-значения при подсчете?
COUNT по конкретному столбцу не будет включать NULL значения. COUNT(*) посчитает все строки.
6.При каких типах соединения условие из WHERE можно перенести в ON с гарантированным сохранением результата запроса?
Гарантированно - при обычном JOIN. В случаях с другими видами JOIN есть нюансы (в зависимости от того, к какой таблице условие)
7.Какой из операторов: SELECT, FROM, WHERE, GROUP BY - будет выполняться последним при обработке запроса?
Среди перечисленных операторов SELECT будет выполняться последним, несмотря на то, что пишется первым. Сначала будет определяться откуда берутся данные (FROM), потом какие (WHERE), потом условия группировки (GROUP BY) и только затем, что будет выведено (SELECT)
8.Какие функции умеют возвращать значения из предыдущих/последующих строк для заданной строки таблицы?
Оконные функции, например такие как: LAG(), LEAD()
9.В чем разница между HAVING и WHERE?
WHERE фильтрует отдельные исходные строки таблицы и не может применяться к агрегирующим функциям. HAVING - наоборот фильтрует строки уже после группировки по значениям агрегирующих функций.
А 10-й вопрос я решила сделать через квиз ⌨️ В комментах к ним добавила объяснение
#sql_анна_в_данных