Урок 1Техники фильтрации: WHERE против HAVING, использование EXISTS, IN, коррелированные подзапросыРазработайте точные стратегии фильтрации для аналитических запросов. Сравните WHERE и HAVING, используйте EXISTS и IN для фильтров подзапросов, применяйте коррелированные подзапросы для выражения сложных аналитических условий, зависящих от строк.
WHERE vs HAVING in grouped queriesUsing IN and NOT IN with subqueriesEXISTS and NOT EXISTS for semi joinsCorrelated subqueries for row-aware logicHandling NULLs in filter conditionsPerformance tips for complex filtersУрок 2Типы данных SQL и обработка дат/времени (DATE, TIMESTAMP, точность чисел)Изучите основные типы данных SQL, используемые в аналитике, и их влияние на хранение, точность и вычисления. Поймите масштабы числовых значений, обработку текста и надежные операции с датами и временными метками для анализа по времени.
Numeric types and precision for metricsCharacter and text data considerationsDATE vs TIMESTAMP and time zonesCasting and converting between typesDate arithmetic and interval calculationsExtracting parts of dates for groupingУрок 3Агрегации и группировка: GROUP BY, HAVING, COUNT, SUM, AVG, MIN, MAXНаучитесь суммировать данные с помощью агрегаций и группировки. Используйте GROUP BY и HAVING для создания метрик, применяйте COUNT, SUM, AVG, MIN и MAX, проектируйте надежные агрегатные запросы для дашбордов и отчетов.
GROUP BY fundamentals and syntaxAggregate functions COUNT and SUMAVG, MIN, and MAX for distributionsHAVING to filter aggregated resultsGrouping by expressions and bucketsDealing with NULLs in aggregatesУрок 4Загрузка CSV в базы данных: COPY, LOAD DATA, импорт в sqlite и распространенные ошибкиНаучитесь практическим методам загрузки CSV-данных в базы данных для анализа. Используйте COPY, LOAD DATA и импорт в SQLite, обрабатывайте разделители и кодировки, избегайте распространенных ошибок, приводящих к некорректной или частичной загрузке.
Preparing CSVs for reliable importsUsing COPY in PostgreSQL and similar systemsLOAD DATA for MySQL and compatible enginesSQLite .import workflow and optionsHandling encodings, delimiters, and quotesValidating row counts and rejected recordsУрок 5Основы DDL и DML: CREATE TABLE, ALTER, INSERT, UPDATE, DELETE, управление транзакциямиНаучитесь, как DDL и DML формируют и изменяют таблицы для аналитики. Освойте создание и изменение схем, вставку и обновление данных, безопасное удаление, использование транзакций для обеспечения целостности данных в аналитических процессах и конвейерах.
Creating analytical tables with CREATE TABLEModifying schemas safely with ALTER TABLEINSERT patterns for bulk and incremental loadsUPDATE and DELETE with safe predicatesCOMMIT, ROLLBACK, and transaction scopeACID properties in analytical workloadsУрок 6Основы запросов: SELECT, WHERE, ORDER BY, LIMIT, DISTINCTОсвойте основной синтаксис запросов, используемый почти в каждом анализе. Научитесь, как SELECT извлекает столбцы, WHERE фильтрует строки, ORDER BY сортирует результаты, LIMIT контролирует размер выборки, DISTINCT удаляет дубликаты в аналитических запросах.
SELECT list design and column aliasesFiltering rows with WHERE conditionsSorting results with ORDER BYLIMIT and OFFSET for sampling dataUsing DISTINCT to remove duplicatesBasic query debugging and refinementУрок 7Соединения и операции над множествами: INNER, LEFT, RIGHT, FULL, CROSS, UNION, EXCEPT, INTERSECTПоймите, как соединения и операции над множествами объединяют наборы данных для анализа. Научитесь, когда использовать каждый тип соединения, как избегать ошибок дублирования, и как UNION, EXCEPT, INTERSECT поддерживают сложные аналитические сравнения.
INNER JOIN for intersecting datasetsLEFT, RIGHT, and FULL OUTER JOIN use casesCROSS JOIN and Cartesian products in analysisUNION vs UNION ALL for stacking dataEXCEPT and INTERSECT for set comparisonsDetecting and handling join duplicationУрок 8Концепции реляционных баз данных: таблицы, первичные/внешние ключи, нормализация против денормализацииПоймите основные реляционные концепции, лежащие в основе аналитических схем. Изучите таблицы, первичные и внешние ключи, формы нормализации и когда денормализовать для производительности в отчетности и BI-нагрузках.
Tables, rows, and columns in practicePrimary keys and uniqueness constraintsForeign keys and referential integrityNormalization forms and redundancy controlDenormalization for reporting performanceStar and snowflake schemas overviewУрок 9Основы производительности: индексы, планы запросов, explain/analyze, простые стратегии оптимизации для аналитических запросовПолучите практическое представление о производительности запросов для аналитики. Научитесь, как работают индексы, читать планы запросов, использовать EXPLAIN и ANALYZE, применять простые стратегии оптимизации для эффективных аналитических запросов.
How indexes speed up lookups and joinsReading and interpreting query plansUsing EXPLAIN and ANALYZE in practiceIdentifying slow filters and joinsOptimizing GROUP BY and aggregationsBasic indexing strategies for analyticsУрок 10Обзор оконных функций: ROW_NUMBER, RANK, DENSE_RANK, SUM() OVER(), AVG() OVER(), PARTITION BYИзучите оконные функции для выполнения продвинутой аналитики без сжатия строк. Освойте ранжирование, скользящие итоги, скользящие средние и стратегии партиционирования для анализа когорт, трендов и сегментации в SQL.
Window function syntax and OVER clauseROW_NUMBER, RANK, and DENSE_RANK use casesRunning totals with SUM() OVER()Moving averages with window framesPARTITION BY for cohort and segment logicORDER BY in windows vs query ordering