Mastering SQL Fundamentals cohort 2

Join our upcoming workshop to learn, connect, and grow with industry experts.

Mastering SQL Fundamentals cohort 2

Workshop Details

From: February 23, 2026 To: May 4, 2025

Time: 7 PM-8:30 PM

Platform: Microsoft Teams

Amount: KES 15,000

Share this Workshop

About this Workshop

SQL AMA Core Objectives

To equip you with in depth understanding of SQL syntax and correct application for analytics and data work; grounded in how databases actually function and how queries are logically executed. We will kick off from understanding core relational database theory and data integrity, to writing correct, readable queries, building reliable business metrics, combining data across multiple tables, and performing advanced analytical calculations using window functions.

This is not a syntax sprint, but it might feel like it. The ultimate goal is to develop self-sufficient SQL practitioners who can reason about data, and write accurate, maintainable queries that hold up in production environments.

Core Stack and Platforms:

Operating System

  • Any modern operating system: Windows, macOS, or Linux.

Dialect

  • PostgreSQL will be the primary database used throughout the course for schema design, querying, and analytics.

SQL Client

  • DBeaver will be used to connect to PostgreSQL, explore schemas, visualize relationships (ERDs), and write and debug SQL queries.

    Course Outline

    ModuleLesson DatesLesson DescriptionSyntaxDeliverySumission Deadline Where Applicable
    M001: Database Theory Essentials for SQL UsersSQL AMA Cohort 2 Onboarding Session
    23/02/2026
    7:30PM - 9:00PM
    Program Onboarding Session - Align Expectations and Assesment rules. Discuss SQL Engines and Clients. Install Dbeaver and Explore the Dbeaver Interface.N/AVirtual - Training Session
    Mandatory
    N/A
    M001: Database Theory Essentials for SQL UsersLesson 1
    24/02/2026
    7:30PM - 9:00PM
    Introduction to Relational Databases - Introduction to Key relational DB theories and the relational model. Evolving from Spreadsheets to SQL.DDL - CREATE, ALTER, DROP, TRUNCATE
    DML - INSERT, UPDATE, DELETE, MERGE
    DQL - SELECT
    Virtual - Training Session
    Recommended
    N/A
    M001: Database Theory Essentials for SQL UsersLesson 2
    26/02/2026
    7:30PM - 9:00PM
    Database Keys, Constraints, Normalization & SQL Data TypesDB THEORY: PRIMARY KEY, FOREIGN KEY, REFERENCES, UNIQUE, NOT NULL
    DATA TYPES: INTEGER, BIGINT, VARCHAR(n), TEXT, DATE, TIMESTAMP, BOOLEAN, DECIMAL(precision, scale), NUMERIC(precision, scale), ::
    Virtual - Training Session
    Recommended
    N/A
    M001: Database Theory Essentials for SQL UsersLesson 3
    28/02/2026
    7:30PM - 9:00PM
    M001 Lab - Define a relational entity and enforce integrity with keys and constraints. Explore normalization concepts discussed in Training Sessions. Experiment with various SQL Data Types and DML|DDL syntax.N/AVirtual - Code Along
    Recommended
    5/03/2026 5:00PM
    M002: SQL Queries - Building BlocksLesson 4
    03/03/2026
    7:30PM - 9:00PM
    Anatomy of an SQL QueryFROM, JOIN, WHERE, GROUP BY, HAVING, SELECT, ORDER BYVirtual - Training Session
    Recommended
    N/A
    M002: SQL Queries - Building BlocksLesson 5
    05/03/2026
    7:30PM - 9:00PM
    SQL Logical Processing Order - Deconstructing Order of Appearance VS Execution of SQL QueriesEXPLAIN, EXPLAIN ANALYZEVirtual - Training Session
    Recommended
    N/A
    M002: SQL Queries - Building BlocksLesson 6
    07/03/2026
    7:30PM - 9:00PM
    M002 Lab - Writing SQL queries and exploring query anatomy and schema-level querying extensivey (how tables live within schemas and how queries reference them. Illustrating SQL’s logical execution order, showing how each clause transforms the intermediate result set and why queries that look correct can still produce incorrect results.N/AVirtual - Code Along
    Mandatory
    12/03/2026 5:00PM
    M003: Filtering, Aggregation, & MetricsLesson 7
    10/03/2026
    7:30PM - 9:00PM
    Filtering Correctly - Apply Row-Level filters before aggregation. Valid and Invalid filtering conditions. Handling Missing or Empty fields.WHERE...AND|OR, IN, BETWEEN, IS NULL, IS NOT NULLVirtual - Training Session
    Recommended
    N/A
    M003: Filtering, Aggregation, & MetricsLesson 8
    12/03/2026
    7:30PM - 9:00PM
    Defining the SQL Aggregation GrainCOUNT, SUM, AVG, MIN, MAX, GROUP BY, HAVINGVirtual - Training Session
    Recommended
    N/A
    M003: Filtering, Aggregation, & MetricsLesson 9
    14/03/2026
    7:30PM - 9:00PM
    M003 Lab - Designing KPIs that are aggregated on different levels of detail. Controlling aggregation and handling edge cases. Introduce Mandatory Scored Task 001.N/AVirtual - Code Along
    Recommended
    21/03/2026 5:00PM
    CATCH UP WEEKLesson 10
    17/03/2026
    7:30PM - 9:00PM
    Review Syntax so Far Session 001N/AVirtual - Support Session
    Optional
    N/A
    CATCH UP WEEKLesson 11
    19/03/2026
    7:30PM - 9:00PM
    Review Syntax so Far Session 002N/AVirtual - Support Session
    Optional
    N/A
    CATCH UP WEEKLesson 12
    21/03/2026
    7:30PM - 9:00PM
    CUW Lab - Respond to the queries in Mandatory Scored Task 001. Publishing work so far on Github.N/AVirtual - Training Session
    Mandatory
    N/A
    M004: Core SQL Constructs For Data Preparation; Date, String & Numeric FunctionsLesson 13
    24/03/2026
    7:30PM - 9:00PM
    Core SQL Constructs - Date Functions. Extracting meaningful date/time fields. Date Calcuations. Preparing time-based dimensions.DATE, TIMESTAMP, EXTRACT(field FROM date_expression), DATE_TRUNC(unit, date_expression), date_expression +- INTERVAL 'naming_string', CURRENT_DATE, CURRENT_TIMESTAMP, CAST(value AS DATE), CAST(value AS TIMESTAMP), value::DATE, value::TIMESTAMPVirtual - Training Session
    Recommended
    N/A
    M004: Core SQL Constructs For Data Preparation; Date, String & Numeric FunctionsLesson 14
    26/03/2026
    7:30PM - 9:00PM
    Core SQL Constructs - String Functions. Cleaning and Standardizing textual data. Manipulating and deriving values from strings.TRIM(string), LTRIM(string), RTRIM(string), LOWER(string), UPPER(string), SUBSTRING(string FROM start FOR length), SUBSTRING(string, start, length), CONCAT(string1, string2 [, ...]), LENGTH(string), LPAD(string, length, pad_string), RPAD(string, length, pad_string), CAST(value AS VARCHAR), CAST(value AS TEXT), value::VARCHAR, value::TEXTVirtual - Training Session
    Recommended
    N/A
    M004: Core SQL Constructs For Data Preparation; Date, String & Numeric FunctionsLesson 15
    28/03/2026
    7:30PM - 9:00PM
    Core SQL Constructs - SQL Operators and Numeric Functions. Peforming safe, predictable arithmetics. NULL-related erros.Logical and Comparison Operators. + - * / % ^, COALESCE(value1, value2 [, ...]), NULLIF(value1, value2), CAST(value AS NUMERIC_TYPE), value::NUMERIC_TYPE, ROUND(number [, precision]), ABS(number), CEILING(number), FLOOR(number), MOD(number, divisor), POWER(number, exponent)Virtual - Training Session
    Recommended
    N/A
    M005: Working with Multiple Tables using JOINsLesson 16
    31/03/2026
    7:30PM - 9:00PM
    Fundamentals of Joining Logic. Join Conditions VS Filters.JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, ONVirtual - Training Session
    Recommended
    N/A
    M005: Working with Multiple Tables using JOINsLesson 17
    02/04/2026
    7:30PM - 9:00PM
    Nested JOINs, Chained JOINs. Row Loss and Data Duplication.N/AVirtual - Training Session
    Recommended
    N/A
    M005: Working with Multiple Tables using JOINsLesson 18
    04/04/2026
    7:30PM - 9:00PM
    M005 Lab - Working with JOINs on normalized tables CORRECTLY. Identifying join related logical Errors. Validating the choice in different JOIN TYPES. Introducing Mandatory Scored Task 002.N/AVirtual - Code Along
    Mandatory
    09/04/2026 5:00PM | Mandatory Scored Task 002 - 14/04/2026 5:00PM
    M006: Writing Readable QueriesLesson 19
    07/04/2026
    7:30PM - 9:00PM
    Introduction to Subqueries; Structuring and Expressing complex logic in clear, correct, mainatinable order. When and Where Subqueries can be used.SELECT (subquery), FROM (subquery) AS alias, WHERE column IN (subquery), WHERE EXISTS (subquery)...Virtual - Training Session
    Recommended
    N/A
    M006: Writing Readable QueriesLesson 20
    09/04/2026
    7:30PM - 9:00PM
    Introduction to Common Table Expressions - Improving query readability using named query blocks. Replacing nested query logic with cleaner logic.WITH cte_name AS ( SELECT ...)
    SELECT ...
    FROM cte_name;
    Virtual - Training Session
    Recommended
    N/A
    M006: Writing Readable QueriesLesson 21
    11/04/2026
    7:30PM - 9:00PM
    Review Syntax so Far Session 003N/AVirtual - Support Session
    Optional
    N/A
    M007: Window FunctionsLesson 22
    14/04/2026
    7:30PM - 9:00PM
    Introduction to Window Functions Syntax. Differentiating WFs from Aggregation Functions. Partitioning and ordering result sets. Aggregate Window Functions.OVER ()... PARTITION BY... ORDER BY
    ROW_NUMBER(), RANK(), DENSE_RANK()
    COUNT(*) OVER (...)
    SUM(expression) OVER (...)
    AVG(expression) OVER (...)
    MIN(expression) OVER (...)
    MAX(expression) OVER (...)
    Virtual - Training Session
    Recommended
    N/A
    M007: Window FunctionsLesson 23
    16/04/2026
    7:30PM - 9:00PM
    Conducting Cummulative and Comparative Analyses with WFs. Navigating Rows and Creating Frames.LAG(expression [, offset [, default]])
    LEAD(expression [, offset [, default]])
    FIRST_VALUE(expression)
    LAST_VALUE(expression)
    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
    ROWS BETWEEN n PRECEDING AND CURRENT ROW
    ROWS BETWEEN CURRENT ROW AND n FOLLOWING
    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
    Virtual - Training Session
    Recommended
    N/A
    M007: Window FunctionsLesson 24
    18/04/2026
    7:30PM - 9:00PM
    M006 Lab - Writing Analytical Queries with Window Functions while producing Rankings, Running Metrics, and Comparison Metrics. Introducing Mandatory Scored Task 003.N/AVirtual - Code Along
    Mandatory
    23/04/2026 5:00PM | Mandatory Scored Task 003 - 25/04/2026 5:00PM
    CATCH UP WEEKLesson 25
    21/04/2026
    7:30PM - 9:00PM
    Review Syntax so Far Session 004N/AVirtual - Support Session
    Optional
    N/A
    CATCH UP WEEKLesson 26
    23/04/2026
    7:30PM - 9:00PM
    CUW Lab -Review of Mandatory Scored Task 002N/AVirtual - Training Session
    Optional
    N/A
    CATCH UP WEEKLesson 2
    25/04/2026
    7:30PM - 9:00PM
    CUW Lab - Review Mandatory Scored Task 003. Introducing Mandatory Scored Task 004 as Capstone ProjectN/AVirtual - Training Session
    Optional
    Mandatory Scored Task 004 - 30/04/2026 5:00PM
    PROJECT WEEKLesson 28
    26/04/2026
    7:30PM - 9:00PM
    Project SupportN/AVirtual - Support Session
    Optional
    N/A
    PROJECT WEEKLesson 29
    27/04/2026
    7:30PM - 9:00PM
    Project SupportN/AVirtual - Support Session
    Optional
    N/A
    PROJECT WEEKLesson 30
    28/04/2026
    7:30PM - 9:00PM
    CUW Lab -Review of Mandatory Scored Task 004. Publishing on Github.N/AVirtual - Support Session
    Optional
    N/A
    Closing Ceremony04/05/2026
    7:30PM - 9:00PM
    Closing Ceremony and ShowcasesN/AVirtual Closing CeremonyN/A

Instructor Introduction