буквально на четыре пары.
на первых двух рассказывал основы select-запроса (до джойнов и group by). на оставшихся двух хочу рассказать cte и разные сложные компоненты запроса - case, select/filter в запросе, оконки.
про что еще можно рассказать из минимально полезного набора? работаем с постгрей
(исхожу из условий, что прав на запись нет, про вьюхи и индексы тоже не горю желанием грузить)
в постгре вроде ещё всякие unnest должны быть
Про rdms?
Вложенные запросы, функции мб основные для обработки нуллов.
я вместо вложенных обычно cte использую, и читать, и работать удобнее
Я бы указал возможность работать с json , и наверное для ознакомления из array (array_agg, string_agg, jsonb_agg, jsonb_object_agg)
есть, да. но я вот массивы в sql считаю абсолютным злом, и стараюсь максимально избегать, честно говоря ну и это еще сложнее чем оконки, кажется :(
хардкорно, спасибо %) я вот думаю работу с датами показать. начиная от юник-формата и заканчивая вычислением интервалов
но если у тебя какая-нибудь не последняя версия clickhouse - то и вложенные запросы могут пригодиться))
да понятное дело что в реляционках массивы это дичь, но она встречается, поэтому можно о ней хотя бы базовый пример привести
да, хорошая идея, спасибо
я на постгре показываю зачем пугать так сразу другими диалектами %)))
ещё можно по типам функций пробежаться, обработка строк и регулярки, работа с датами и так далее
И не жалко вам студентов?
Поддерживаю, но регулярки это совсем другой мир, хотя лучше ~ чем like )
оно не во всех диалектах реализовано, к сожалению :( like-то везде есть, даже в data.table %)
union, exept и т.д.
Да, но в том и дело что мы говорим о пастгрейсе где это реализовано. Да и вообще где будет постгрейс там всегда жди json и парсить его нужно уметь. Хотя если для ознакомления то может достаточно подзапрос и джоин
да, это именно интро, а не полноценный курс
о, спасибо, я и забыл про них
Развлечение с IN и EXISTS))
in показал, а exists я и сам не особо пользую. полезная штука?
Есть нюансы по скорости, работы с NULL и прочие штуки. В exists можно не только равенство запихать))
я использую в случае, если надо проверить наличие клиента в куче разных таблиц) exists и left join lateral вообще у меня самый частый прием в арсенале))
Обсуждают сегодня