800+ SQL Server Interview Questions and Answers .pdf
1 MB
Подойдёт, чтобы:
— прокачать SQL-навыки с нуля до продвинутого уровня
— быстро освежить синтаксис перед интервью
— попрактиковаться на реальных задачах
Полезно как джунам, так и мидлам. Отличный способ проверить себя и закрыть пробелы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Проект устраняет главную боль разработчиков: необходимость дублировать модели для БД и API.
Инструмент имеет синтаксис на основе аннотаций типов. Один класс одновременно описывает таблицу в БД и схему для FastAPI, а встроенная поддержка IDE сразу подсказывает поля и выявляет ошибки. Например, модель Hero с полями name и secret_name готова к использованию и в миграциях, и в эндпоинтах без лишнего кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
А вы когда-нибудь задумывались, почему функции вызывают? Это выражение используется, кажется, применительно ко всем языкам программирования, где вообще есть функции, которые можно вызывать. Оно стало таким привычным, что многие вряд ли задумываются, откуда оно взялось. Очевидно, что в русский язык выражение пришло из английского, а откуда там появилось «call function»?
[…] the position in the memory at which arguments are placed can be standardized, so that whenever a subroutine is called in to perform a calculation, the subroutine will automatically know that the argument which is to be used is at a specified place.
[…] Some of them might be written out in a handbook and transferred to the coding of the problem as needed, but those of any complexity presumably ought to be in a library — that is, a set of magnetic tapes in which previously coded problems of permanent value are stored.
[…] позицию в памяти, где размещаются аргументы, можно стандартизировать так, чтобы при вызове подпрограммы для выполнения вычислений она автоматически знала, что необходимый аргумент находится в определенном месте.
[…] Некоторые из них можно было бы записать в справочник и вручную вставлять в код по необходимости, но более сложные следует хранить в библиотеке — то есть в наборе магнитных лент с закодированными задачами.
Возможность вызвать подпрограмму для выполнения какой-то функции упоминается еще в нескольких других источниках середины прошлого века — например, в мануале FORTRAN II от 1958 года:
Each [CALL statement] will constitute a call for the defining subprogram, which may carry out a procedure of any length or complexity […] [The CALL] statement causes transfer of control to the subroutine NAME and presents the subroutine with the arguments, if any, enclosed in parentheses.
Каждый [оператор CALL] производит вызов определенной подпрограммы, которая может выполнить операцию любой длины и сложности […] Оператор CALL передает управление подпрограмме с указанным именем и передает ей аргументы, заключенные в скобки.
Также он подчеркивает, что хотя слово «вызов» применительно к подпрограммам используется регулярно, целиком знакомое нам выражение «вызвать подпрограмму» встречается в 1961 в документе Burroughs Algebraic Compiler:
The ENTER statement is used to initiate the execution of a subroutine (to call a subroutine).
Оператор ENTER используется, чтобы начать выполнение подпрограммы (то есть чтобы вызывать подпрограмму).
Вот такая ИТ-лингвистика. А вы знали историю термина?
Please open Telegram to view this post
VIEW IN TELEGRAM
Система автоматически публикует результаты в формате GitHub Gist с возможностью сравнения с популярными моделями через интеграцию с YALL — альтернативным рейтингом языковых моделей. Для работы потребуются только API-токены RunPod и GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
Автоматизация отчётов с Python и API – с нуля до первых результатов
Представьте ситуацию: в пятницу после работы звонит в панике руководитель маркетинга — в понедельник встреча с инвесторами, а сводка по рекламным кампаниям не готова. Данные разбросаны по Google Ads, Yandex.Direct и внутренней CRM.
Раньше это означало 3–4 часа ручного копирования и сведение в Excel с поиском ошибок — стресс для всех. Но всё меняется, когда вы умеете автоматизировать этот процесс.
На предстоящем 12 августа в 19:00 (МСК) вебинаре Александр Грудинин, Lead Data Analyst в AdTech Holding и ментор курса «Аналитик данных», пошагово расскажет и покажет, как с помощью Python и API сервисов можно решать такие задачи быстро и эффективно:
Почему это важно для новичков?
Увидите "кухню" реальной аналитики, поймёте логику работы с данными – от запроса к API до готового отчёта, а также получите навык, который выделит вас среди других начинающих аналитиков.
Чем раньше вы научитесь автоматизировать рутину – тем быстрее начнёте расти в аналитике.
🕗 12 августа в 19:00 по МСК
😶 Регистрируйтесь сейчас — вебинар будет максимально практическим!
Представьте ситуацию: в пятницу после работы звонит в панике руководитель маркетинга — в понедельник встреча с инвесторами, а сводка по рекламным кампаниям не готова. Данные разбросаны по Google Ads, Yandex.Direct и внутренней CRM.
Раньше это означало 3–4 часа ручного копирования и сведение в Excel с поиском ошибок — стресс для всех. Но всё меняется, когда вы умеете автоматизировать этот процесс.
На предстоящем 12 августа в 19:00 (МСК) вебинаре Александр Грудинин, Lead Data Analyst в AdTech Holding и ментор курса «Аналитик данных», пошагово расскажет и покажет, как с помощью Python и API сервисов можно решать такие задачи быстро и эффективно:
🟠 Как подключаться к API Google Ads, Yandex.Direct и CRM через библиотеку и получать структурированные данные.🟠 Как превращать «сырые» ответы в удобные для анализа таблицы.🟠 Как создавать наглядные отчеты и графики динамики трафика и экспортировать результаты.
Почему это важно для новичков?
Увидите "кухню" реальной аналитики, поймёте логику работы с данными – от запроса к API до готового отчёта, а также получите навык, который выделит вас среди других начинающих аналитиков.
Чем раньше вы научитесь автоматизировать рутину – тем быстрее начнёте расти в аналитике.
🕗 12 августа в 19:00 по МСК
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Он включает преднастроенные потоки для интеграции моделей ИИ, таких как OpenAI, Ollama и другие, позволяя управлять данными и автоматизировать процессы без необходимости использования облачных сервисов. Решение идеально подходит для бизнеса и индивидуальных разработчиков.
Лицензия: Apache-2.0
Please open Telegram to view this post
VIEW IN TELEGRAM
Этот проект предлагает готовую облачную платформу или возможность самому развернуть альтернативу Firebase, но с GraphQL и PostgreSQL под капотом. Вместо NoSQL — привычный SQL, вместо REST — мощный GraphQL API на базе Hasura, а также встроенные аутентификация, хранилище и serverless-функции.
При этом Nhost не привязывает разработчика к конкретному фронтенд-фреймворку. Один и тот же SDK работает с React, Vue, Next.js и даже Flutter. Локальная разработка упрощена благодаря CLI, а для продакшна можно выбрать как managed-решение от создателей, так и развернуть всё на своих серверах через Docker.
Please open Telegram to view this post
VIEW IN TELEGRAM
Мы уже рассказывали про хранение данных на бумаге и в черно-белых видео с помехами, но недавно обнаружилось еще более оригинальное хранилище — скворец. Точнее, песня скворца.
Ютубер Бенн Джордан выложил видео, где рассказал, как записывал и анализировал песни разных птиц. Одной из этих птиц стал скворец по имени Рот (или Mouth), который всю жизнь прожил с людьми и научился имитировать окружающие его звуки вроде щелчка камеры или человеческих голосов.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Иногда нужно найти пары строк, которые почти совпадают — например, из-за опечатки в одной букве. Такой кейс часто встречается при поиске дублей в именах, email или товарах.
С помощью функции levenshtein() из расширения pg_trgm в PostgreSQL, можно находить строки, отличающиеся ровно на 1 символ. Это удобно для очистки данных, поиска дублей и реализации "умного" поиска в интерфейсе.
-- Убедись, что pg_trgm расширение включено
CREATE EXTENSION IF NOT EXISTS pg_trgm;
-- Найдём строки из таблицы users, у которых name отличается на 1 символ
SELECT a.name AS name1, b.name AS name2
FROM users a
JOIN users b ON a.id < b.id
WHERE levenshtein(a.name, b.name) = 1;
-- Пример: найдёт пары вроде ('Anna', 'Anya') или ('John', 'Joan')
Please open Telegram to view this post
VIEW IN TELEGRAM
1. pandas
read_csv("flight_data.csv") → весь файл свалился в одну колонку 2. DuckDB
SELECT * FROM read_csv('flight_data.csv') → автоматически подхватил разделитель и выдал аккуратные столбцыЕсли работаете с CSV с нестандартным delimiter’ом, попробуйте прочитать его через DuckDB: детектирует разделители сам и экономит ваше время на ручной настройке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Компания Posit известна как разработчик RStudio — среды разработки, популярной среди дата саентистов и предназначенной для работы с R. Их новый проект, Positron, призван выступить как новая, более гибкая альтернатива.
Если верить отзывам, после 2 лет в разработке Positron все еще страдает от багов и недостатка фич, особенно по сравнению с более привычным многим RStudio, но это уже вполне рабочий и перспективный инструмент.
Он доступен бесплатно на Windows, macOS и Linux.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как избежать «ИИ-пилотного болота»: опыт PepsiCo
В начале бума генеративного ИИ многие компании бросились внедрять всё подряд — и часто получали сомнительные результаты. Сегодня многие сворачивают пилоты, но у PepsiCo всё пошло иначе.
Секрет — в стратегии: максимум 4–5 ИИ-проектов одновременно, на которые идут ресурсы и эксперты. Остальное тестируется во внутренней песочнице PepGenX — запуск только после доказанной пользы для KPI.
Прогнозирование спроса
ИИ каждый день пересчитывает прогнозы, анализируя продажи, маркетинг и сотни внешних сигналов. Видит «горячие» недели до того, как они наступят.
ИИ-агенты на складах
Автоматизируют планировку хранения, подсказывают мерчандайзерам, куда выкладывать товар.
ИИ-продажники
На B2B-платформе оформляют заказы, дают клиентам данные о запасах в реальном времени, прогнозируют поставки и помогают запускать таргетированные кампании.
Разработка продуктов
ИИ сокращает запуск новинок с 6–9 месяцев до 6 недель, оптимизирует рецептуры и брендинг.
Маркетинг
Генерирует идеи, тестирует их на виртуальных респондентах и оптимизирует кампании.
Итог: никакой гонки за хайпом — только точечные ИИ-решения, которые приносят измеримый бизнес-результат.
В начале бума генеративного ИИ многие компании бросились внедрять всё подряд — и часто получали сомнительные результаты. Сегодня многие сворачивают пилоты, но у PepsiCo всё пошло иначе.
Секрет — в стратегии: максимум 4–5 ИИ-проектов одновременно, на которые идут ресурсы и эксперты. Остальное тестируется во внутренней песочнице PepGenX — запуск только после доказанной пользы для KPI.
Прогнозирование спроса
ИИ каждый день пересчитывает прогнозы, анализируя продажи, маркетинг и сотни внешних сигналов. Видит «горячие» недели до того, как они наступят.
ИИ-агенты на складах
Автоматизируют планировку хранения, подсказывают мерчандайзерам, куда выкладывать товар.
ИИ-продажники
На B2B-платформе оформляют заказы, дают клиентам данные о запасах в реальном времени, прогнозируют поставки и помогают запускать таргетированные кампании.
Разработка продуктов
ИИ сокращает запуск новинок с 6–9 месяцев до 6 недель, оптимизирует рецептуры и брендинг.
Маркетинг
Генерирует идеи, тестирует их на виртуальных респондентах и оптимизирует кампании.
Итог: никакой гонки за хайпом — только точечные ИИ-решения, которые приносят измеримый бизнес-результат.
Иногда нужно из каждой группы выбрать одну запись, например, самую раннюю по дате. Если у вас нет оконных функций (например, в старом MySQL), используйте трюк с
GROUP BY и JOIN:
SELECT t1.*
FROM orders t1
JOIN (
SELECT customer_id, MIN(order_date) AS min_date
FROM orders
GROUP BY customer_id
) t2 ON t1.customer_id = t2.customer_id AND t1.order_date = t2.min_date;
Please open Telegram to view this post
VIEW IN TELEGRAM
Одно из главных препятствий на пути к внедрению в компании data-driven подхода — это то, что обычные бизнес-юзеры не понимают, как им работать с аналитикой. Не просить у аналитиков каждый раз сделать отчет или выгрузку, а самостоятельно копаться в данных и находить ответы на свои вопросы.
Плюсы в том, что не приходится прописывать всю эту информацию каждый раз в разных системах, а бизнес-пользователи могут работать с данными, оперируя понятными им терминами и названиями. И уже под капотом у семантического слоя их простые запросы трансформируются в оптимизированный SQL-код.
Конечно, нужно это не всем. Введение семантического слоя оправдано, когда:
Если пока нет необходимости объединять системы и стандартизировать расчеты, тратить время на создание семантического слоя может быть нерационально.
Для тех, кому этого мало, даже дали ссылку на еще подробную статью с подборкой полезных материалов и списком тулов для создания семантических слоев.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Продвинутый SQL-трюк: Как одним запросом вытащить только самую последнюю запись по каждой группе — и при этом сохранить все остальные поля
Если ты хочешь, например, получить последний заказ по каждому клиенту, но у тебя нет оконных функций или ты хочешь максимально производительный запрос — вот чистый, понятный способ.
🫡 Всё пиз-Data Science
Если ты хочешь, например, получить последний заказ по каждому клиенту, но у тебя нет оконных функций или ты хочешь максимально производительный запрос — вот чистый, понятный способ.
-- Найдём последнюю покупку по каждому customer_id
SELECT o.*
FROM orders o
JOIN (
SELECT customer_id, MAX(order_date) AS max_date
FROM orders
GROUP BY customer_id
) latest
ON o.customer_id = latest.customer_id
AND o.order_date = latest.max_date;
-- Работает даже если в таблице десятки миллионов строк, индекс на order_date и customer_id ускорит запрос
Please open Telegram to view this post
VIEW IN TELEGRAM
Что если к языковой модели можно обращаться как к обычной базе данных?
uQLM (Universal Query Language for Models) позволяет писать SQL‑подобные запросы, чтобы:
SELECT generate_response(prompt)
FROM gpt4
WHERE prompt LIKE '%explain%'
LIMIT 5;
uQLM работает как прослойка между пользователем и языковой моделью, облегчая интеграцию ИИ в аналитические пайплайны.
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья содержит 120 ключевых вопросов по SQL для собеседований, разделённых по темам и уровням сложности, с краткими пояснениями.
Основываясь на актуальных требованиях 2025 года, вопросы охватывают базу данных, оптимизацию, практические задачи и нюансы СУБД (MySQL, PostgreSQL, SQL Server).
Please open Telegram to view this post
VIEW IN TELEGRAM
Кажется, скоро это станет базовой формулой: хочешь денег — используй ИИ. Хочется верить, что это не приведёт к созданию ИИ-проектов, где ИИ не нужен.
Please open Telegram to view this post
VIEW IN TELEGRAM
Каждый месяц — битва с бесконечными таблицами и версиями «финальной» цифры.
В какой-то момент кажется, что всё сошлось, но уверенности нет. Хватит ли вам сил и времени на этот хаос? 😓
9 сентября, на вебинаре от Дельта BI, Navicon и Денвик Аналитика вы
узнаете, как навести порядок в данных и автоматизировать процессы, чтобы стать настоящим чемпионом аналитики.
Представьте, что вы:
📍 Быстро и безопасно выгружаете данные из 1С, словно по волшебству.
📍 Объединяете таблицы Excel с другими источниками с помощью удобного low-code ELT, словно это детская игра.
📍 Создаёте дашборд в Дельта BI, который работает сам по себе, освобождая ваше время для важных дел.
Умение правильно использовать аналитику — ключ к успеху.
Это возможность быть на шаг или два впереди конкурентов, быстро реагировать на изменения рынка и принимать обоснованные решения.
🔗 Присоединяйтесь к нам! Зарегистрируйтесь по ссылке
После этого вебинара вы наконец-то скажете: «Теперь я понимаю, как сделать аналитику простой и эффективной!»🚀
В какой-то момент кажется, что всё сошлось, но уверенности нет. Хватит ли вам сил и времени на этот хаос? 😓
9 сентября, на вебинаре от Дельта BI, Navicon и Денвик Аналитика вы
узнаете, как навести порядок в данных и автоматизировать процессы, чтобы стать настоящим чемпионом аналитики.
Представьте, что вы:
📍 Быстро и безопасно выгружаете данные из 1С, словно по волшебству.
📍 Объединяете таблицы Excel с другими источниками с помощью удобного low-code ELT, словно это детская игра.
📍 Создаёте дашборд в Дельта BI, который работает сам по себе, освобождая ваше время для важных дел.
Умение правильно использовать аналитику — ключ к успеху.
Это возможность быть на шаг или два впереди конкурентов, быстро реагировать на изменения рынка и принимать обоснованные решения.
🔗 Присоединяйтесь к нам! Зарегистрируйтесь по ссылке
После этого вебинара вы наконец-то скажете: «Теперь я понимаю, как сделать аналитику простой и эффективной!»🚀
This media is not supported in your browser
VIEW IN TELEGRAM
Американский шеф и писатель J. Kenji López-Alt, а затем и издание The Pudding собрали математическую модель, которая отвечает на этот вопрос. В проекте рассматриваются разные виды надрезов — вертикальные, радиальные, надрезы к воображаемой точке под луковицей: всё, чтобы получить кусочки минимально отличающиеся по размерам.
Please open Telegram to view this post
VIEW IN TELEGRAM
У тебя есть две таблицы:
users
---------
id | name
---|-----
1 | Alice
2 | Bob
3 | Charlie
orders
----------
id | user_id | total
----|---------|-------
1 | 1 | 100
2 | 1 | 200
3 | 2 | 300
Нужно вывести всех пользователей и количество их заказов, включая тех, у кого заказов нет вообще.
Ты пишешь:
SELECT u.id, u.name, COUNT(o.id) AS order_count
FROM users u
JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.name;
1 | Alice | 2
2 | Bob | 1
А где Charlie? 😡
Нужно использовать LEFT JOIN, чтобы сохранить всех пользователей.
SELECT u.id, u.name, COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.name;
Теперь результат:
1 | Alice | 2
2 | Bob | 1
3 | Charlie | 0
Хочешь сохранить всех из "левой" таблицы — используй LEFT JOIN. А COUNT(о.id) не считает NULL — и это хорошо: ты получаешь реальное число заказов, а не просто 1 за NULL.
Please open Telegram to view this post
VIEW IN TELEGRAM