Почему одно объединение "умное", но медленное, другое - "тупое", но честное?
Обсудим сегодня эту тему.
А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!
UNION и UNION ALL.
На вид - почти одно и то же. По смыслу - разные вещи.
И вот почему
UNION ALL — «тащит всё как есть»
UNION ALL просто берёт результаты двух запросов и клеит их друг под другом:
SELECT name FROM customers
UNION ALL
SELECT name FROM partners;
Никаких проверок, дубликатов, умностей.
- Если в обоих списках есть «Иван», то итоговый результат будет два «Ивана». - Если порядок в исходных таблицах хаотичный, в результате он будет ещё хаотичнее.
UNION ALL = быстро + честно + без фильтров.
UNION - «умный, но медленный»
UNION делает то же самое, но перед тем как вернуть результат, он удаляет дубликаты:
SELECT name FROM customers
UNION
SELECT name FROM partners;
Чтобы убрать дубли, PostgreSQL/Oracle/MySQL вынуждены:
отсортировать результат
или построить hash-сет
и только потом вернуть данные
Это дорого. На миллионах строк может стать тормозом №1 в отчёте.
UNION = красиво, чисто, но медленно.
Где использовать UNION?
✔ Когда действительно нужны уникальные значения
Например, получить список всех пользователей, независимо от источника:
SELECT user_id FROM old_system
UNION
SELECT user_id FROM new_system;
✔ Когда нужно исключить дубли после сложной логики
Например, когда запросы пересекаются, а ты не хочешь вручную писать DISTINCT.
Где использовать UNION ALL?
Практически везде, там где не надо удалять дубликаты, т.к. их по определению нет. Например объединение отчетных данных за разные периоды.
SELECT * FROM sales_2024
UNION ALL
SELECT * FROM sales_2025;
Неочевидный факт: порядок строк не гарантируется
Ни в UNION, ни в UNION ALL.
Если хочешь порядок — дописывай: ORDER BY
Вывод:
UNION ALL — как корзина: «скидываем всё подряд».
UNION — как фильтр: «скидываем всё, но потом отбираем уникальное».
Мой канал На связи: SQL ждет тебя, если ты тоже хочешь познакомиться с базовым языком для аналитики данных. Подписывайся!
Колледжи Москвы дают знания и практику, сопоставимые с теми, что получают студенты университетов. С дипломом СПО можно поступить в вуз на факультет экономики без ЕГЭ и пройти обучение по сокращенной программе. Или сразу начать карьеру, ведь ссузы нередко сотрудничают с крупнейшими работодателями столицы. В статье рассказываем о лучших колледжах Москвы, сравниваем профессии экономиста, бухгалтера и аналитика, советуем, как выбрать специальность и поступить.
Профессии экономического направления кажутся похожими, но сильно различаются по задачам, уровню ответственности и даже типу мышления, который требуется специалисту.
🔗Экономист — это эксперт широкого профиля. Он анализирует работу компании, помогает планировать бюджеты, прогнозирует развитие бизнеса и оценивает, какие решения будут выгодными.
Экономисту важны системное мышление, логика, умение видеть процессы целиком. Это хороший выбор для тех, кто любит разбираться в механике бизнеса и хочет иметь гибкую карьерную траекторию — от финансового менеджмента до планово-экономических отделов.
🔗Бухгалтер работает более точечно и глубоко в документах. Его зона ответственности — учет, отчетность, налоги, 1С, контроль за финансовыми операциями.
Профессия подойдет людям, которым нравится порядок, внимание к деталям и четкие правила. Квалифицированные бухгалтеры всегда востребованы, особенно в малом и среднем бизнесе, где на них держится финансовая стабильность компании.
🔗Аналитик — это уже про работу с данными: цифрами, графиками, статистикой, исследованиями. Аналитики помогают компаниям принимать решения на основании фактов, а не чутья.
Профессия требует усидчивости, логики, умения находить скрытые закономерности. Финансовые, продуктовые, бизнес-аналитики сегодня — одни из самых перспективных специалистов, особенно в банках и IT.
📌Можно ли перейти из колледжа в профильный вуз
Такой вариант — не исключение, а вполне рабочая траектория, которой пользуются тысячи выпускников с дипломом СПО. Более того, для студентов экономических специальностей этот путь часто оказывается даже удобнее, чем поступление сразу после 11 класса.
Многие университеты принимают выпускников колледжей без ЕГЭ — по внутренним экзаменам и результатам собеседования. Это особенно актуально для тех, кто не планирует сдавать госэкзамен, но хочет продолжить обучение по выбранной специальности.
Колледж дает фундаментальные и практические навыки, которые засчитываются вузами. Благодаря этому выпускники нередко учатся по сокращенным программам: вместо четырех лет — три или даже два с половиной. Иногда вуз может зачислить студента сразу на второй курс, если учебные планы совпадают.
⚠️Обычно московские колледжи имеют партнерские соглашения с вузами.Это облегчает зачисление, перспективы прозрачнее, а выпускникам ссузов могут давать дополнительные преимущества при поступлении.
Важно понимать: переход в вуз — это не автоматический процесс. Нужно заранее уточнять, какие предметы засчитывают, есть ли вступительные испытания и подходит ли ваша специальность под выбранное направление подготовки.
🔝Лучшие экономические колледжи Москвы:
1. Колледж «Синергия»;
2. Колледж Президентской академии (Колледж РАНХиГС);
3. Московский городской открытый колледж (МГОК);
4. Колледж предпринимательства №11 (КП №11);
5. Колледж Московского технологического института (Колледж МТИ);
6. Колледж Московского финансово-юридического университета (Колледж МФЮА);
7. Столичный профессиональный колледж (СПК);
8. Колледж Российского государственного социального университета (Колледж РГСУ);
9. Гуманитарный техникум экономики и права (ГТЭП);
10. Колледж современного управления города Москвы (КСУ);
11. Московский промышленно-экономический колледж Российского экономического университета имени Г. В. Плеханова (МПЭК РЭУ им. Г. В. Плеханова);
12. Колледж современных технологий имени Героя Советского Союза М. Ф. Панова (КСТ им. М. Ф. Панова);
13. Московский финансовый колледж Финансового университета (МФК);
14. Колледж Московского гуманитарно-экономического университета (Колледж МГЭУ);
15. Московский колледж бизнес-технологий (МКБТ).
1. Колледж «Синергия»
Один из самых узнаваемых образовательных проектов по подготовке специалистов в сфере экономики и бизнеса. Колледж работает в структуре университета и пользуется всеми преимуществами масштабной экосистемы — современными программами, сильными преподавателями и возможностью продолжать обучение без потери времени.
По данным Роструда за 2024 год, «Синергия» вошла в число лидеров по трудоустройству выпускников и уровню их заработных плат в первые годы работы. Вуз признан одним из крупнейших EdTech-брендов страны и лучшим по эффективности коммуникаций среди университетов РФ.
Экономические направления колледжа ориентированы на практику. Студенты проходят обучение бухгалтерии и финансам, осваивают управленческий учет и современные цифровые инструменты, которые сегодня используются в компаниях. Преподают специалисты с большим опытом: профессора, эксперты международных организаций, практикующие финансисты и аналитики.
Особое преимущество колледжа — возможность продолжить обучение в Университете «Синергия» без ЕГЭ и по сокращенной траектории. Для многих студентов это становится удобным способом пройти путь от СПО до магистратуры в единой образовательной системе.
Если вам интересна специальность финансист, колледж «Синергия» — оптимальный вариант для поступления.
▫︎ Программы: «Бухгалтер», «Финансист (закупки)»
▫︎ Стоимость учебы за год: уточните на сайте колледжа
▫︎ Платное обучение: проходные баллы и количество свободных мест уточните на сайте колледжа
Чтобы поступить в Колледж «Синергия», оставьте заявку на сайте, дождитесь звонка специалиста, укажите специальность и заключите договор. Вступительных экзаменов на направления «Бухгалтер» и «Финансист (закупки)» нет — зачисление проводится по среднему баллу аттестата.
2. Колледж Президентской академии (Колледж РАНХиГС)
Известное подразделение РАНХиГС, которое уже 17 лет готовит специалистов по востребованным направлениям. Обучение здесь ориентировано на практику: студенты работают в современных лабораториях, изучают цифровые инструменты, участвуют в проектах и проходят стажировки у крупнейших российских работодателей. Выпускники получают диплом РАНХиГС, многие продолжают обучение в академии по ускоренной траектории, переходя из колледжа на программы бакалавриата и далее — в магистратуру.
▫︎ Программы: «Финансы», «Банковское дело», «Экономика и бухгалтерский учет (по отраслям)»
▫︎ Стоимость учебы за год: от 230 000 рублей
▫︎ Формат обучения: очное, очно-заочное, заочное
▫︎ Бюджет: проходные баллы — от 4,4; количество свободных мест — от 120
▫︎ Платное обучение: проходные баллы — от 3,1; свободных мест — от 420
Абитуриент подает пакет документов — в том числе дистанционно, — после чего специалисты приемной комиссии принимают решение на основе среднего балла аттестата, без дополнительных экзаменов и творческих испытаний.
3. Московский городской открытый колледж (МГОК)
Частный образовательный центр нового поколения, известный динамичным обучением по 20 специальностям с интеграцией школьной программы 10–11 классов для поступающих после 9-го и гарантией трудоустройства через практику в компаниях Москвы. Выпускники получают диплом гособразца и могут продолжить обучение в вузах — партнерах колледжа.
▫︎ Программы: «Банковское дело», «Экономика и бухгалтерский учет (по отраслям)»
▫︎ Стоимость учебы за год: от 160 000 рублей
▫︎ Формат обучения: очное, онлайн
▫︎ Бюджет: нет
▫︎ Платное обучение: проходные баллы — от 3; свободных мест — от 90
Для поступления соберите минимальный пакет документов и подайте их лично, курьером или онлайн через сайт колледжа. Конкурс — по среднему баллу аттестата без вступительных экзаменов.
4. Колледж предпринимательства №11 (КП №11)
КП №11 известен практико-ориентированными программами по экономике и бизнесу: студенты с первых курсов работают над реальными проектами и стажируются в компаниях-партнерах. Среди особенностей — современная инфраструктура и связи с бизнес-сообществом Москвы, а выпускники часто продолжают карьеру там, где проходили практику.
▫︎ Программы: «Финансы», «Банковское дело»
▫︎ Стоимость учебы за год: от 90 000 рублей
▫︎ Формат обучения: очное, очно-заочное, заочное
▫︎ Бюджет: проходные баллы — от 4,2; свободных мест — от 180
▫︎ Платное обучение: проходные баллы — от 3,8; свободных мест — от 570
В колледж принимают по среднему баллу аттестата, без вступительных испытаний.
5. Колледж Московского технологического института (Колледж МТИ)
Это динамичный центр прикладного обучения «под крылом» инновационного столичного вуза. Студенты осваивают востребованные навыки в экономике и других областях на базе высокотехнологичных лабораторий, цифровых кластеров и мастерских под руководством экспертов-практиков. Многие выпускники переходят в МТИ на сокращенную программу высшего образования и находят работу благодаря партнерству с работодателями.
▫︎ Программы: «Экономика и бухгалтерский учет (по отраслям)», «Коммерция (по отраслям)», «Банковское дело»
▫︎ Стоимость учебы за год: от 80 000 рублей
▫︎ Формат обучения: очное, очно-заочное, заочное
▫︎ Бюджет: нет
▫︎ Платное обучение: количество свободных мест — от 55
В МТИ зачисляют без результатов ЕГЭ и ОГЭ — конкурс проходит по среднему баллу аттестата.
6. Колледж Московского финансово-юридического университета (Колледж МФЮА)
Колледж МФЮА — подразделение старейшего негосударственного вуза России — готовит финансистов, банкиров, логистов и бухгалтеров с упором на практику в компаниях-партнерах. Среди них «Альфа-Банк», Росфинмониторинг и Правительство Москвы. Студенты создают портфолио с реальными проектами, которые помогают в трудоустройстве, а выпускники имеют право поступить на ускоренное обучение в МФЮА без ЕГЭ.
▫︎ Программы: «Экономика и бухгалтерский учет в бюджетных организациях», «Финансы», «Банковское дело»
▫︎ Стоимость учебы за год: от 170 000 рублей
▫︎ Формат обучения: очное, очно-заочное, заочное
▫︎ Бюджет: проходные баллы — от 3,9; свободных мест — от 15
▫︎ Платное обучение: проходные баллы — от 3; количество свободных мест — от 1350
В Колледж МФЮА принимают без экзаменов по среднему баллу аттестата — подайте заявление онлайн через сайт. Или лично: не забудьте паспорт, диплом и комплект фото.
7. Столичный профессиональный колледж (СПК)
СПК прославился своей школой театрально-эстрадного искусства. Но здесь можно найти не только творческие специальности: например, юриспруденцию, менеджмент и банковское дело. Студенты занимаются в камерных студиях и бизнес-лабораториях, участвуют в международных конкурсах профмастерства.
▫︎ Программа: «Банковское дело»
▫︎ Стоимость учебы за год: от 42 000 рублей
▫︎ Формат обучения: очное, заочное
▫︎ Бюджет: нет
▫︎ Платное обучение: проходные баллы — от 3; свободных мест — от 22
Для поступления на «Банковское дело» подайте документы и дождитесь результатов конкурса аттестатов. Вступительных испытаний на специальности нет — все решает средний балл.
8. Колледж Российского государственного социального университета (Колледж РГСУ)
Ссуз — часть крупнейшего социального вуза России с более чем столетней историей. Колледж славится подготовкой специалистов для экономики и других сфер с фокусом на государственные и общественные учреждения. В распоряжении студентов — учебные площади вуза, ориентированные на практику программы и тесные связи с социальными службами для быстрого трудоустройства.
▫︎ Программы: «Экономика и бухгалтерский учет», «Банковское дело»
▫︎ Стоимость учебы за год: от 199 800 рублей
▫︎ Формат обучения: очное
▫︎ Бюджет: нет
▫︎ Платное обучение: проходные баллы — от 4,1; свободных мест — от 50
Для поступления достаточно аттестата за 9 или 11 класс. Документы можно подать через сайт колледжа, после чего остается ждать результатов конкурса и сообщения о том, что вы приняты.
9. Гуманитарный техникум экономики и права (ГТЭП)
ГТЭП известен гибкими программами по экономике, коммерции и другим направлениям с онлайн-платформой для самостоятельного обучения. Техникум организует поездки студентов по России для обмена опытом и творческие кружки. Выпускники получают два диплома гособразца.
▫︎ Программы: «Экономика и бухгалтерский учет», «Банковское дело»
▫︎ Стоимость учебы за год: от 36 000 рублей
▫︎ Формат обучения: очное, заочное
▫︎ Бюджет: нет
▫︎ Платное обучение: проходные баллы — от 3; количество свободных мест — от 300
В ГТЭП принимают без экзаменов и ЕГЭ, по конкурсу аттестатов. Чем лучше оценки, тем выше шанс стать студентом.
10. Колледж современного управления города Москвы (КСУ)
КСУ — колледж с сильными программами по управлению и экономике, современными аудиториями и регулярной практикой у городских партнеров. Выпускники находят работу в частных компаниях и государственных структурах.
▫︎ Программы: «Банковское дело», «Экономика и бухгалтерский учет (по отраслям)»
▫︎ Стоимость учебы за год: от 36 000 руб
▫︎ Формат обучения: очное, очно-заочное, заочное
▫︎ Бюджет: нет
▫︎ Платное обучение: проходные баллы — от 3; свободных мест — от 450
В КСУ поступают без экзаменов, по конкурсу аттестатов. Абитуриенты подают документы через сайт, после чего ожидают подтверждение зачисления.
11. Московский промышленно-экономический колледж Российского экономического университета имени Г. В. Плеханова (МПЭК РЭУ им. Г. В. Плеханова)
Колледж предлагает бюджетные места, современную инфраструктуру в центре Москвы, доступ к лабораториям вуза и возможность поступления по результатам внутренних экзаменов.
▫︎ Программы: «Банковское дело», «Финансы», «Экономика и бухгалтерский учет (по отраслям)»
▫︎ Стоимость учебы за год: от 130 000 рублей
▫︎ Формат обучения: очное, заочное
▫︎ Бюджет: проходные баллы — от 4,4; свободных мест — от 140
▫︎ Платное обучение: проходные баллы — от 4,3; свободных мест — от 85
В МПЭК поступают без экзаменов, по среднему баллу аттестата — подайте документы и дождитесь результатов конкурса.
12. Колледж современных технологий имени Героя Советского Союза М. Ф. Панова (КСТ им. М. Ф. Панова)
Колледж отличается современной материально-технической базой, активной производственной практикой и партнерствами с крупными работодателями и профильными вузами. Это помогает выпускникам продолжить обучение и найти интересную работу в столице.
▫︎ Программы: «Банковское дело», «Экономика и бухгалтерский учет (по отраслям)»
▫︎ Стоимость учебы за год: от 50 000 рублей
▫︎ Формат обучения: очное, очно-заочное, заочное
▫︎ Бюджет: проходные баллы уточните на сайте; свободных мест — от 150
▫︎ Платное обучение: проходные баллы — от 3; свободных мест — от 120
Прием ведется по конкурсу аттестатов: достаточно подать документы в приемную комиссию, после чего вас включат в рейтинговый список. Экзаменов в колледже нет — все зависит от школьных оценок.
13. Московский финансовый колледж Финансового университета (МФК)
Одно из старейших профильных средних специальных учебных заведений столицы, подготовившее множество квалифицированных финансистов и бухгалтеров с практическими навыками работы на современном технологичной оборудовании. В колледже созданы оптимальные условия для учебы и спортивно-оздоровительный комплекс. Выпускников приглашают на работу в финансовые и налоговые органы Москвы и области.
▫︎ Программы: «Банковское дело», «Финансы», «Экономика и бухгалтерский учет (по отраслям)»
▫︎ Стоимость учебы за год: от 218 900 рублей
▫︎ Формат обучения: очное
▫︎ Бюджет: проходные баллы — от 4,6; количество свободных мест — от 160
▫︎ Платное обучение: проходные баллы — от 4,6; количество свободных мест — от 135
Поступление проходит по конкурсу аттестатов. Чем лучше ваши оценки за 9 или 11 класс, тем больше шансов попасть на бюджет.
14. Колледж Московского гуманитарно-экономического университета (Колледж МГЭУ)
Колледж входит в структуру университета и на протяжении многих лет готовит специалистов в области экономики, права, социальной сферы и рекламы. Обучение здесь объединяет глубокую теоретическую подготовку с обширной практикой. У выпускников есть возможность продолжить обучение в МГЭУ на льготных условиях, без ЕГЭ.
▫︎ Программы: «Финансы» (финансист), «Банковское дело» (специалист банковского дела), «Экономика и бухгалтерский учет (по отраслям)»
▫︎ Стоимость учебы за год: от 70 000 рублей
▫︎ Формат обучения: очное, заочное
▫︎ Бюджет: нет
▫︎ Платное обучение: проходные баллы — от 3,3; количество свободных мест — от 220
Подайте в приемную комиссию заявление и аттестат за 9 или 11 класс, дождитесь окончания конкурса и узнайте результаты. Экзаменов в колледже нет, все решают ваши оценки.
15. Московский колледж бизнес-технологий (МКБТ)
МКБТ известен динамичным развитием, высоким качеством услуг по шести направлениям и современными мастерскими, в которых студенты отрабатывают полученные знания на практике. В 2013 году к МКБТ присоединился радиотехнический колледж.
▫︎ Программы: «Финансы», «Банковское дело», «Экономика и бухгалтерский учет (по отраслям)»
▫︎ Стоимость учебы за год: от 68 000 рублей
▫︎ Формат обучения: очное, заочное
▫︎ Бюджет: проходные баллы уточните на сайте; свободных мест — от 450
▫︎ Платное обучение: проходные баллы — от 3; свободных мест — от 240
Чтобы поступить, подайте документы на сайте колледжа или лично в приемную комиссию. Абитуриентов принимают по конкурсу аттестатов. Чем выше общий балл, тем больше шансов попасть на бюджет.
💼Как найти «тот самый» колледж и построить карьеру в экономике
Если вы хотите освоить одну из экономических специальностей, выбирайте колледж по душе: вариантов много, и у каждого свои особенности.
Совет: заранее посчитайте средний балл аттестата, чтобы понимать перспективы, посетите дни открытых дверей приоритетных колледжей, проверьте сайты на актуальные проходные баллы и подачу документов онлайн — так вы сэкономите время и избежите ошибок.
Отдайте предпочтение тому, что ближе вам по характеру — стратегия, порядок или цифры, — чтобы учеба и работа приносили радость.
Сейчас декабрь, все закрывают квартал/год, делают бюджет на следующий год, но а я в поиске работы. Нет, начала поиск я не в декабре, а в октябре. Из результатов за 2 месяца - один оффер, но я отказалась от него. Не из-за содержания работы, а из-за процесса оформления - он вызвал сомнения.
И пока я продолжала поиск, я начала анализировать, что вообще происходит вокруг. Почему раньше всё работало одним способом, а теперь - совсем иначе.
Сейчас из каждого утюга слышу, что работу найти сложно, что на поиск работы надо закладывать 6 месяцев и т.д. и т.п. Ну ОК, подумала я, и вот в октябре начала искать, отрыла резюме на hh.ru для всех желающих, стала повторять теорию, нарешивать задачки и т.д.
Просматриваю вакансии, отбираю в избранное, потом анализирую, что и как там может быть. И наблюдаю за своим резюме. В итоге: - просмотров резюме - кот наплакал, - на отклики, релевантные моему опыту - отказы - предложения только с релокацией в другую страну
Смотрю я статистику своего резюме: последний раз искала работу через HH в 2021 году, просмотров резюме по 10 в день. А сейчас дай бог 3 в неделю.
Резюме у меня одно, я его обновляю и дополняю по мере изменения моего опыта.
Читаю информацию про текущее положение на рынке, везде слышу, что рынок работодателя, что вакансий мало, резюме много. А дальше, очень часто натыкаюсь на то, что все разом говорят - надо делать резюме под конкретную вакансию
Причиной всего этого - автоматизация процессов. Первый скрининг резюме проводит не HR, а AI-агент, настроенный под конкретные триггерные слова.
Раньше мы писали резюме для людей. Теперь - сначала для алгоритмов
Эпоха универсальных резюме закончилась. Не потому, что специалисты стали хуже. А потому что требования стали более структурированными, а инструменты поиска - более автоматизированными.
И теперь у меня вместо одного резюме - 4 резюме, с нотками особенностей под конкретные направления.
Опыт один и тот же. Но фокус - разный. И именно фокус видят алгоритмы.
И вот в этой статистике, которую вещает HH.ru - ссылка на презентацию здесь Говорится о динамики среднего числа вакансий и резюме
Сопоставление вакансий идет к количеству резюме - не к количеству кандидатов.
Если даже возьмем меня, то у меня 4 резюме (планируется еще одно), т.е. количество резюме (в моем случае надо разделить на 4). А если это применить ко всем резюме, то может быть и картина то изменится. И не будем мы использовать слово рынок работодателя - а может быть другой рынок. Например рынок AI-ассистентов
Со стороны соискателей, тоже идет автоматизация. Соискатели в ручную откликаются на 100 вакансий из идеи - а что-то да и сработает. Либо также настраивают автоотклик, автообновление. Все это приводит к тому, что на одну вакансию HR-ы получают 400-3000 откликов, что руками нереально разобрать.
Поэтому компании: - ставят автоскоринг - ранжируют по ключевым словам - убирают резюме, которые хоть чуть-чуть не совпадают - сортируют по «свежести обновления»
И это не плохо и не хорошо — это новая норма. Но к ней нужно адаптироваться.
Искать работу в конце 2025 года — это уже не про то, чтобы быть «идеальным кандидатом». Это про то, чтобы быть заметным в мире, где первые фильтры проходят не люди, а алгоритмы.
Ну а я в своем канале про SQL буду продолжать делиться полезной информацией, интересными задачками и продолжать вдохновлять людей для изучения аналитики. Если тебе интересно, подписывайся На связи: SQL
CASE WHEN - часто используемое условное выражение в запросах. Его особенности и факты далее.
А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!
CASE - возвращает значение, но не управляет логикой выполнения запроса.
SELECT
name,
CASE
WHEN salary > 100000 THEN 'богач'
WHEN salary BETWEEN 50000 AND 100000 THEN 'норм'
ELSE 'бедняк'
END AS category
FROM employees;
Здесь CASE не «делает выборку», а вычисляет новое значение для каждой строки.
Где используется CASE
✅ В SELECT - чтобы выводить вычисленные поля ✅ В WHERE - чтобы сделать фильтрацию условной ✅ В ORDER BY - чтобы сортировать по кастомной логике ✅ В GROUP BY и HAVING - для агрегатов с условиями
Пример в ORDER BY:
ORDER BY
CASE WHEN status = 'vip' THEN 1 ELSE 2 END
В итоге VIP-клиенты окажутся первыми — без лишнего UNION или сортировки по тексту.
Где нельзя использовать CASE
Нельзя динамически подменять им названия колонок или таблиц — SQL так не работает:
SELECT * FROM CASE WHEN ... THEN table1 ELSE table2 END -- ошибка
Нельзя изменять структуру запроса — CASE не может выбирать, какие поля попадут в SELECT.
То есть он работает только на уровне данных, не на уровне схемы запроса.
Неочевидные факты
1. CASE возвращает первое совпадение
SQL идёт сверху вниз — как только условие совпало, остальные даже не проверяются. Поэтому важно порядок условий.
CASE
WHEN score > 80 THEN 'A'
WHEN score > 90 THEN 'A+' -- никогда не сработает
END
Потому что >80 ловит всё, включая >90.
2. Тип результата — общий для всех веток
CASE пытается привести все результаты к единому типу. Если ты вернёшь 'текст' и NULL, всё ок. Но если 'текст' и 123, то SQL может выдать ошибку или привести число к строке. 💡 Всегда делай значения одного типа, особенно если потом используешь CASE в арифметике.
3. Есть две формы: сравнительная и поисковая
Обычно используют поисковую:
CASE WHEN condition THEN result ... END
Но есть ещё сравнительная:
CASE status
WHEN 'new' THEN 1
WHEN 'active' THEN 2
END
Она короче, но менее гибкая — работает только с равенством (=).
4. CASE + агрегаты = мощный аналитический трюк
Чтобы посчитать агрегаты по категориям в одной строке:
SELECT
SUM(CASE WHEN gender = 'M' THEN 1 ELSE 0 END) AS male_count,
SUM(CASE WHEN gender = 'F' THEN 1 ELSE 0 END) AS female_count
FROM users;
Один запрос, два счётчика, без подзапросов и джойнов.
5. CASE в WHERE — не всегда оптимален
Когда ты используешь CASE в WHERE, PostgreSQL часто не может применить индекс, потому что условие становится непредсказуемым.
Пример:
WHERE
CASE WHEN is_vip THEN discount > 10 ELSE discount > 30 END
Лучше выносить логику в OR:
WHERE (is_vip AND discount > 10)
OR (NOT is_vip AND discount > 30)
Так планировщик сможет использовать индексы (их наличие подразумевается)
Где CASE особенно полезен
Когда нужно сделать динамическую сегментацию данных (категории, статусы, группы)
При построении витрин и отчётов (разделить аудиторию, выделить группы риска и т.п.)
Для чистки данных на лету (заменить NULL на текст или дефолтное значение)
В AB-тестах — присвоить группе метку на основании условия
Если тебе нравятся такие разборы SQL с реальными примерами и подводными камнями — подписывайся на мой Telegram На связи: SQL
Простые функции. Кажется, что они находят просто минимум и максимум. Но есть и особенность их использования для интерпретации результатов. Об этом далее.
А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!
MIN и MAX — не только про числа
Они работают с любыми типами данных:
датами (MIN(date) даст самую раннюю дату),
строками (MAX(name) вернёт последнюю в алфавитном порядке),
Иногда этим можно ловко воспользоваться — например, чтобы узнать, есть ли хоть один true:
SELECT MAX(is_active) FROM users;
Если вернёт true — значит, кто-то активен. Красиво и лаконично.
MIN и MAX — не только агрегатные, но и оконные функции
Можно получить минимум или максимум в рамках окна, не теряя детализацию:
SELECT
user_id,
date,
MAX(date) OVER (PARTITION BY user_id) AS last_activity
FROM logins;
Так можно легко вытащить, когда пользователь последний раз заходил — без группировки и без JOIN.
MIN/MAX и NULL
Они игнорируют NULL. То есть если у тебя все значения NULL, то результат — NULL. Это часто ломает аналитику, особенно при сравнении с COALESCE или при объединении данных.
SELECT MAX(COALESCE(score, 0)) -- вернёт 0, а не NULL
→ Иногда важно явно заменить NULL, чтобы не получить "пустой" результат.
MIN/MAX могут ускорить выборку
Если в таблице есть индекс по нужному полю — MIN() и MAX() используют только крайний элемент индекса. Это значит, что:
SELECT MAX(price) FROM products;
может пройтись не по миллиону строк, а просто взять последнее значение из B-tree индекса. То есть — мгновенно.
Можно найти строку с минимальным/максимальным значением
Классическая боль аналитика: как вытащить не просто максимум, а всю строку, где он встретился.
💡 Один из лучших способов — оконная функция + фильтр:
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (ORDER BY salary DESC) AS rn
FROM employees
) t
WHERE rn = 1;
→ Получаем сотрудника с максимальной зарплатой. Без подзапросов, без JOIN, без боли.
Неочевидный кейс: поиск экстремумов в группах
SELECT department, MIN(salary), MAX(salary)
FROM employees
GROUP BY department;
Классика, но важно: разница между MAX и MIN = разброс значений, полезный показатель в аналитике (например, зарплат).
💬 Если хочешь больше таких разборов с реальными кейсами SQL без воды — подписывайся на мой Telegram 👉На связи: SQL Там я рассказываю про SQL так, чтобы стало интересно даже тем, кто раньше его ненавидел 😄
Возьми все значения и найди среднее арифметическое.
Но на практике AVG часто ведёт себя не так, как ты ожидаешь — и это причина десятков аналитических факапов в отчётах.
А пока подписывайся на мой каналНа связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!
Что делает AVG()?
AVG() - агрегатная функция. Она считает среднее значение по всем строкам, которые попали в выборку после фильтрации WHERE
Если ты просто возьмёшь AVG(rating) → 4.5 Но по факту второй пользователь оставил 20 отзывов, его мнение должно весить больше:
SELECT SUM(rating * reviews) / SUM(reviews) AS weighted_avg
FROM ratings;
Вот это уже взвешенное среднее, и результат будет ближе к 4.
AVG не коммутативен в агрегациях
AVG(AVG(...)) ≠ AVG(...)
Пример:
| group | value |
| ----- | ----- |
| A | 10 |
| A | 20 |
| B | 100 |
| B | 100 |
| B | 100 |
SELECT AVG(avg_val) FROM (
SELECT group, AVG(value) AS avg_val
FROM t GROUP BY group
) s;
Результат будет → 57.5 А реальное среднее по всей таблице = 86.
Почему? Потому что при втором AVG каждая группа имеет одинаковый “вес”, а не количество строк. Это типичный аналитический капкан.
AVG в окнах (window functions)
AVG() можно использовать по “скользящему окну”, чтобы считать динамику:
SELECT
date,
AVG(price) OVER (ORDER BY date ROWS 6 PRECEDING) AS moving_avg_7d
FROM stock_prices;
👉 Это 7-дневное скользящее среднее — классика анализа временных рядов, трейдинга и предсказания трендов.
Среднее как критерий “нормальности”
В аналитике AVG часто используют вместе со STDDEV:
STDDEV (Standard Deviation) — стандартное отклонение (среднеквадратичное отклонение). Это статистическая мера разброса данных относительно их среднего значения в определённом периоде.
SELECT *
FROM purchases
WHERE amount > AVG(amount) + 3 * STDDEV(amount);
Так находят аномально большие значения — подозрительные платежи, мошеннические операции и т.д.
AVG по датам — это тоже работает
Мало кто знает, что AVG() можно применять даже к датам:
SELECT AVG(order_date)::date FROM orders;
PostgreSQL переведёт даты во внутренние числа и вычислит “среднюю дату” — по сути, середину временного диапазона. Это удобно, если хочешь понять, когда чаще всего происходили события.
AVG и производительность
AVG() всегда вычисляется через SUM и COUNT, поэтому если ты делаешь:
SELECT COUNT(*), SUM(amount), AVG(amount)
— оптимизатор посчитает всё за один проход по данным. Но если AVG в отдельном запросе — будет второй проход. Мелочь, а при миллионах строк чувствуется.
Мой канал На связи: SQL ждет тебя, если ты тоже хочешь познакомиться с базовым языком для аналитики данных.
Когда мы слышим «COUNT» и «SUM» мы подразумеваем - «считает строки», «суммирует числа»
Но даже для таких действий есть тонкости и нюансы.
А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!
В большинстве случаев мы используем 3 вида COUNT
COUNT(*) — считает все строки, даже пустые.
COUNT(column) — считает только те строки, где есть данные.
COUNT(DISTINCT column) — считает уникальные значения в column.
Считаем все строки, независимо от содержимого колонок:
SELECT COUNT(*) FROM guests;
Результат: 6
Всего 6 гостей пришло.
Неважно, принес ли кто-то подарок или нет, учитывается каждая строка.
COUNT(gift)
Считаем только те строки, где колонка gift не NULL:
SELECT COUNT(gift) FROM guests;
Результат: 4
Только Оля (Торт), Маша (Цветы), Петя (Торт), Оля (Торт) учитываются.
Вася и Катя, у которых gift = NULL, не считаются.
Эта разница показывает: сколько записей реально имеют данные по этой колонке.
COUNT(DISTINCT gift)
Считаем уникальные подарки:
SELECT COUNT(DISTINCT gift) FROM guests;
Результат: 2
Есть только два уникальных подарка: Торт и Цветы.
Независимо от того, сколько гостей принесли одинаковый подарок, каждый подарок считается один раз.
🔍 Что это говорит при анализе данных
COUNT(*) — общее количество записей (все строки).
COUNT(column) — сколько строк с заполненным значением в колонке.
COUNT(DISTINCT column) — сколько уникальных значений встречается в колонке.
Вывод: разница между этими числами может показать пропуски (NULL) и повторяющиеся данные. Это важно при анализе — если просто взять COUNT(*), можно недооценить проблему с пропущенными значениями.
Ну а теперь рассмотрим SUM
Чтобы показать, как эта функция работает и какие тонкости бывают, рассмотрим таблицу: Таблица orders: | id | customer | amount | | -- | -------- | ------ | | 1 | Оля | 100 | | 2 | Вася | NULL | | 3 | Маша | 200 | | 4 | Петя | 150 | | 5 | Катя | NULL | | 6 | Оля | 100 |
1️⃣ SUM(amount) Считаем сумму по колонке amount (игнорирует NULL):