<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: PRUDENCE KORIR</title>
    <description>The latest articles on DEV Community by PRUDENCE KORIR (@prudence_korir_).</description>
    <link>https://dev.to/prudence_korir_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4070937%2F82dcf867-b51f-42ef-aa4d-f1c719ae425d.png</url>
      <title>DEV Community: PRUDENCE KORIR</title>
      <link>https://dev.to/prudence_korir_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prudence_korir_"/>
    <language>en</language>
    <item>
      <title>Mastering Intermediate &amp; Advanced SQL: A Practical Healthcare Analytics Guide</title>
      <dc:creator>PRUDENCE KORIR</dc:creator>
      <pubDate>Mon, 19 Oct 2026 05:11:18 +0000</pubDate>
      <link>https://dev.to/prudence_korir_/mastering-intermediate-advanced-sql-a-practical-healthcare-analytics-guide-4iag</link>
      <guid>https://dev.to/prudence_korir_/mastering-intermediate-advanced-sql-a-practical-healthcare-analytics-guide-4iag</guid>
      <description>&lt;p&gt;In clinical operations and healthcare administration, raw relational tables alone cannot answer complex analytical questions like tracking readmission trends, analyzing department staffing hierarchies, or auditing medication billing variances.&lt;/p&gt;

&lt;p&gt;This guide demonstrates how to apply Window Functions, Joins, Common Table Expressions (CTEs), and Subqueries using a standard hospital database schema.&lt;/p&gt;

&lt;p&gt;We explore four foundational SQL areas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Window Functions&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL Joins&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Common Table Expressions (CTEs)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL Subqueries&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Dataset Schema Reference: &lt;code&gt;kenyan_hospital_health_records&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;All practical queries in this article target the table below, representing real clinical visits, billing records, and attending personnel:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Column Name&lt;/th&gt;
&lt;th&gt;SQL Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;patient_id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;INT PRIMARY KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unique 4-digit identifier for the patient encounter.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;first_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;VARCHAR(50)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Patient's given name.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;last_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;VARCHAR(50)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Patient's surname.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gender&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;VARCHAR(10)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Biological sex (&lt;code&gt;Female&lt;/code&gt;, &lt;code&gt;Male&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;age&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;INT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Patient age in years (1 to 85).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;phone_number&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;BIGINT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Telephone contact formatted as Kenyan country code &lt;code&gt;254...&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;date_of_visit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DATE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Date of registration/admission (2020-01-01 to 2025-04-03).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;diagnosis&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;VARCHAR(50)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clinical condition (e.g., &lt;code&gt;Asthma&lt;/code&gt;, &lt;code&gt;Diabetes&lt;/code&gt;, &lt;code&gt;Hypertension&lt;/code&gt;, &lt;code&gt;Typhoid&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;treatment_plan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;VARCHAR(50)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Protocol prescribed (e.g., &lt;code&gt;Admission&lt;/code&gt;, &lt;code&gt;Surgery&lt;/code&gt;, &lt;code&gt;Medication&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;doctor_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;VARCHAR(100)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Attending physician (e.g., &lt;code&gt;Dr. Kiplagat&lt;/code&gt;, &lt;code&gt;Dr. Atieno&lt;/code&gt;, &lt;code&gt;Dr. Mutua&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;hospital_department&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;VARCHAR(50)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clinical unit (&lt;code&gt;Cardiology&lt;/code&gt;, &lt;code&gt;Oncology&lt;/code&gt;, &lt;code&gt;Pediatrics&lt;/code&gt;, &lt;code&gt;Neurology&lt;/code&gt;, etc.).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;insurance_provider&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;VARCHAR(50)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Insurer (&lt;code&gt;NHIF&lt;/code&gt;, &lt;code&gt;Jubilee&lt;/code&gt;, &lt;code&gt;AAR Healthcare&lt;/code&gt;, &lt;code&gt;Britam&lt;/code&gt;, &lt;code&gt;APA Insurance&lt;/code&gt;, or &lt;code&gt;NULL&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bill_amount_kes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;NUMERIC(10,2)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Incurred medical charges in Kenyan Shillings.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;payment_status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;VARCHAR(20)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Settlement status (&lt;code&gt;Paid&lt;/code&gt;, &lt;code&gt;Partially Paid&lt;/code&gt;, &lt;code&gt;Pending&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  1. SQL Window Functions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Concept Overview
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;window function&lt;/strong&gt; performs calculations across a set of table rows that are related to the current query row. Unlike standard &lt;code&gt;GROUP BY&lt;/code&gt; aggregations—which collapse multiple rows into a single summary row—window functions preserve individual row identities while displaying aggregate or relative metrics alongside them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Window Mechanics: &lt;code&gt;OVER()&lt;/code&gt;, &lt;code&gt;PARTITION BY&lt;/code&gt;, &lt;code&gt;ORDER BY&lt;/code&gt;, and Frames
&lt;/h3&gt;

&lt;p&gt;Every window function uses the &lt;code&gt;OVER()&lt;/code&gt; clause:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;FUNCTION&lt;/span&gt;&lt;span class="p"&gt;(...)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;partition_column&lt;/span&gt;
    &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;sort_column&lt;/span&gt;
    &lt;span class="k"&gt;ROWS&lt;/span&gt; &lt;span class="k"&gt;BETWEEN&lt;/span&gt; &lt;span class="n"&gt;UNBOUNDED&lt;/span&gt; &lt;span class="k"&gt;PRECEDING&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="k"&gt;CURRENT&lt;/span&gt; &lt;span class="k"&gt;ROW&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;OVER()&lt;/code&gt;&lt;/strong&gt;: Signals to the database engine that the preceding function operates over an analytical window rather than a collapsed group. An empty &lt;code&gt;OVER()&lt;/code&gt; treats the entire result set as one single partition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;PARTITION BY&lt;/code&gt;&lt;/strong&gt;: Divides the rows into logical subsets or "partitions" (e.g., by &lt;code&gt;hospital_department&lt;/code&gt; or &lt;code&gt;doctor_name&lt;/code&gt;). The calculation runs independently within each subset and resets at partition boundaries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;ORDER BY&lt;/code&gt;&lt;/strong&gt;: Dictates the sequence in which rows are processed and evaluated inside each individual partition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Window Frame (&lt;code&gt;ROWS&lt;/code&gt; / &lt;code&gt;RANGE BETWEEN ...&lt;/code&gt;)&lt;/strong&gt;: Defines the physical or logical boundary of rows relative to the current row included in the computation.

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW&lt;/code&gt;: From the start of the partition up to the active row (standard for running totals).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING&lt;/code&gt;: A sliding 3-row moving window (the previous row, current row, and next row).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Ranking Functions: &lt;code&gt;ROW_NUMBER()&lt;/code&gt;, &lt;code&gt;RANK()&lt;/code&gt;, &lt;code&gt;DENSE_RANK()&lt;/code&gt;, and &lt;code&gt;NTILE()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Ranking functions assign an ordered integer to each row within a partition.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;ROW_NUMBER()&lt;/code&gt;&lt;/strong&gt;: Generates a strict, non-repeating sequence (1, 2, 3, 4,) for each row in a partition. If two rows have identical values in the sort column, they are assigned consecutive numbers arbitrarily.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;RANK()&lt;/code&gt;&lt;/strong&gt;: Assigns sequential ranks but leaves gaps after ties (e.g., 1, 2, 2, 4).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;DENSE_RANK()&lt;/code&gt;&lt;/strong&gt;: Assigns sequential ranks without gaps after ties (e.g., 1, 2, 2, 3).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;NTILE(n)&lt;/code&gt;&lt;/strong&gt;: Divides an ordered partition as evenly as possible into n ranked buckets (e.g., quartiles where n=4).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Practical Query: Department Billing Tier Audit
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;first_name&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;last_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;patient_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROW_NUMBER&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; 
        &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;row_num&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;RANK&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; 
        &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;rnk&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;DENSE_RANK&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; 
        &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;dense_rnk&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;NTILE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; 
        &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;cost_quartile&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What the Query Does&lt;/strong&gt;: Partitions all 672 records by &lt;code&gt;hospital_department&lt;/code&gt; and sorts them from highest to lowest bill amount. It tags each record with its row position, ranking, dense ranking, and cost quartile.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expected Result&lt;/strong&gt;: In &lt;code&gt;Cardiology&lt;/code&gt;, Patient &lt;code&gt;9656&lt;/code&gt; (KES  49,732.40) and Patient &lt;code&gt;7362&lt;/code&gt; (KES 49,720.43) receive ranks 1 and 2. Patients falling into &lt;code&gt;cost_quartile = 1&lt;/code&gt; represent the top 25 most expensive cases in that specific department, enabling targeted insurance audits.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Value Functions: &lt;code&gt;LAG()&lt;/code&gt;, &lt;code&gt;LEAD()&lt;/code&gt;, &lt;code&gt;FIRST_VALUE()&lt;/code&gt;, and &lt;code&gt;LAST_VALUE()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Value functions allow rows to read values from neighboring rows without requiring complex self-joins.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;LAG(col, offset)&lt;/code&gt;&lt;/strong&gt;: Reads data from n rows behind the current row within the partition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;LEAD(col, offset)&lt;/code&gt;&lt;/strong&gt;: Reads data from n rows ahead of the current row within the partition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;FIRST_VALUE(col)&lt;/code&gt;&lt;/strong&gt;: Returns the value of the specified column from the very first row in the window frame.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;LAST_VALUE(col)&lt;/code&gt;&lt;/strong&gt;: Returns the value from the final row in the window frame. &lt;em&gt;(Note: Must be paired with &lt;code&gt;ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING&lt;/code&gt; or &lt;code&gt;ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING&lt;/code&gt; to prevent the default frame from terminating at the current row).&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Practical Query: Tracking Chronological Doctor Encounters and Cost Variances
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;doctor_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;date_of_visit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;LAG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;doctor_name&lt;/span&gt; 
        &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;date_of_visit&lt;/span&gt; &lt;span class="k"&gt;ASC&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;previous_patient_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;LEAD&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;doctor_name&lt;/span&gt; 
        &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;date_of_visit&lt;/span&gt; &lt;span class="k"&gt;ASC&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;subsequent_patient_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;FIRST_VALUE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;doctor_name&lt;/span&gt; 
        &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;date_of_visit&lt;/span&gt; &lt;span class="k"&gt;ASC&lt;/span&gt;
        &lt;span class="k"&gt;ROWS&lt;/span&gt; &lt;span class="k"&gt;BETWEEN&lt;/span&gt; &lt;span class="n"&gt;UNBOUNDED&lt;/span&gt; &lt;span class="k"&gt;PRECEDING&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;UNBOUNDED&lt;/span&gt; &lt;span class="k"&gt;FOLLOWING&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;first_recorded_bill&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;doctor_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Dr. Kiplagat'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What the Query Does&lt;/strong&gt;: Orders Dr. Kiplagat's 52 consultations chronologically. It pulls the bill from the preceding patient visit and the bill from the subsequent visit onto the active record.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expected Result&lt;/strong&gt;: For Dr. Kiplagat's first visit on &lt;code&gt;2020-02-28&lt;/code&gt; (Patient &lt;code&gt;5098&lt;/code&gt;), &lt;code&gt;previous_patient_bill&lt;/code&gt; displays &lt;code&gt;NULL&lt;/code&gt;. The subsequent visit on &lt;code&gt;2020-06-19&lt;/code&gt; displays KES 26,535.91 in &lt;code&gt;previous_patient_bill&lt;/code&gt; and KES  31,284.09 in &lt;code&gt;subsequent_patient_bill&lt;/code&gt;, allowing revenue analysts to identify fluctuations between sequential encounters.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Aggregate Window Functions: &lt;code&gt;SUM()&lt;/code&gt;, &lt;code&gt;AVG()&lt;/code&gt;, &lt;code&gt;COUNT()&lt;/code&gt;, &lt;code&gt;MIN()&lt;/code&gt;, and &lt;code&gt;MAX()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;When combined with an &lt;code&gt;OVER()&lt;/code&gt; clause, standard aggregate functions produce running totals, departmental moving averages, and cohort extremes directly alongside individual patient rows.&lt;/p&gt;

&lt;h4&gt;
  
  
  Practical Query: Running Revenue and Department Benchmarking
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;date_of_visit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;-- Running revenue total across time within the department&lt;/span&gt;
    &lt;span class="k"&gt;SUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; 
        &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;date_of_visit&lt;/span&gt; &lt;span class="k"&gt;ASC&lt;/span&gt;
        &lt;span class="k"&gt;ROWS&lt;/span&gt; &lt;span class="k"&gt;BETWEEN&lt;/span&gt; &lt;span class="n"&gt;UNBOUNDED&lt;/span&gt; &lt;span class="k"&gt;PRECEDING&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="k"&gt;CURRENT&lt;/span&gt; &lt;span class="k"&gt;ROW&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;running_dept_revenue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;-- Department average benchmark&lt;/span&gt;
    &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;dept_average_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;-- Department maximum charge&lt;/span&gt;
    &lt;span class="k"&gt;MAX&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;dept_max_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;-- Department minimum charge&lt;/span&gt;
    &lt;span class="k"&gt;MIN&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;dept_min_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;-- Cumulative count of patients treated&lt;/span&gt;
    &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; 
        &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;date_of_visit&lt;/span&gt; &lt;span class="k"&gt;ASC&lt;/span&gt;
        &lt;span class="k"&gt;ROWS&lt;/span&gt; &lt;span class="k"&gt;BETWEEN&lt;/span&gt; &lt;span class="n"&gt;UNBOUNDED&lt;/span&gt; &lt;span class="k"&gt;PRECEDING&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="k"&gt;CURRENT&lt;/span&gt; &lt;span class="k"&gt;ROW&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;cumulative_patient_count&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What the Query Does&lt;/strong&gt;: Retains every encounter while calculating a cumulative running total of revenue and patient throughput over time, juxtaposed against the overall department average, floor, and ceiling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expected Result&lt;/strong&gt;: A finance dashboard showing how each incoming patient increments total department cash flow, alongside an immediate visual check of whether an individual bill exceeded &lt;code&gt;dept_average_bill&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. SQL Joins
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Concept Overview
&lt;/h3&gt;

&lt;p&gt;Joins combine columns from two or more tables or subquery projections based on logical relationships between shared keys. In healthcare databases, choosing the appropriate join type guarantees data integrity and prevents dropping clinical records or introducing duplicate entries.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;INNER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt;       &lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt;        &lt;span class="k"&gt;RIGHT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt;       &lt;span class="k"&gt;FULL&lt;/span&gt; &lt;span class="k"&gt;OUTER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt;
  &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="err"&gt;∩&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;        &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="err"&gt;∩&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;  &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="err"&gt;∩&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;  &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="err"&gt;∪&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Join Types &amp;amp; Healthcare Applications
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Join Type&lt;/th&gt;
&lt;th&gt;Mathematical Set Behavior&lt;/th&gt;
&lt;th&gt;Healthcare Use Case&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;INNER JOIN&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Returns only records where the join predicate matches in &lt;strong&gt;both&lt;/strong&gt; tables.&lt;/td&gt;
&lt;td&gt;Linking patient consultations strictly to verified hospital departments or active payment records.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;LEFT JOIN&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Returns &lt;strong&gt;all&lt;/strong&gt; records from the left table, and matched records from the right table (unmatched right rows become &lt;code&gt;NULL&lt;/code&gt;).&lt;/td&gt;
&lt;td&gt;Detecting departments or insurance providers with &lt;strong&gt;zero&lt;/strong&gt; recorded claims.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;RIGHT JOIN&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Returns &lt;strong&gt;all&lt;/strong&gt; records from the right table, and matched records from the left table (unmatched left rows become &lt;code&gt;NULL&lt;/code&gt;).&lt;/td&gt;
&lt;td&gt;Auditing master clinical catalogs against active patient utilization.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;FULL OUTER JOIN&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Returns &lt;strong&gt;all&lt;/strong&gt; records when there is a match in either the left or right table. Unmatched attributes on either side display &lt;code&gt;NULL&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;Reconciling patient registers during hospital mergers or clinic branch synchronizations.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;CROSS JOIN&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Computes the Cartesian product; pairs every row from Table A with every row from Table B .&lt;/td&gt;
&lt;td&gt;Constructing full clinical scheduling grids (e.g., Doctors ,times Departments ,times On-Call Shifts).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;SELF JOIN&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Joins a table to itself using aliasing (&lt;code&gt;t1&lt;/code&gt; and &lt;code&gt;t2&lt;/code&gt;).&lt;/td&gt;
&lt;td&gt;Finding clinical co-occurrences (e.g., patients treated in the same department on the same date).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  Normalized Staging Tables for Joins
&lt;/h3&gt;

&lt;p&gt;To demonstrate relational joins using the hospital records, we project two normalized dimension tables from the dataset alongside the encounter fact table:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- Dimension Table 1: Master Hospital Departments&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TEMPORARY&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;master_departments&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;department_name&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;
&lt;span class="k"&gt;UNION&lt;/span&gt; &lt;span class="k"&gt;ALL&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="s1"&gt;'Radiology'&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;department_name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;-- Deliberately unassigned department for testing outer joins&lt;/span&gt;

&lt;span class="c1"&gt;-- Dimension Table 2: Registered Insurance Payers&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TEMPORARY&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;master_insurers&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="n"&gt;insurance_provider&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;insurer_name&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;insurance_provider&lt;/span&gt; &lt;span class="k"&gt;IS&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;
&lt;span class="k"&gt;UNION&lt;/span&gt; &lt;span class="k"&gt;ALL&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="s1"&gt;'Madison Insurance'&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;insurer_name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;-- Deliberately unassigned insurer&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Practical Queries: Joins in Action
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. &lt;code&gt;INNER JOIN&lt;/code&gt;: Matching Verified Insured Encounters
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;first_name&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;patient_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;insurer_name&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;
&lt;span class="k"&gt;INNER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;master_insurers&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; 
    &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;insurance_provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;insurer_name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explanation&lt;/strong&gt;: Returns only the 536 records that have an active insurance plan matching the insurer directory. Uninsured/cash patients (&lt;code&gt;NULL&lt;/code&gt;) are excluded.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. &lt;code&gt;LEFT JOIN&lt;/code&gt;: Identifying Inactive Departments
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;md&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;department_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;total_encounters&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;SUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;total_billed_kes&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;master_departments&lt;/span&gt; &lt;span class="n"&gt;md&lt;/span&gt;
&lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; 
    &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;md&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;department_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;md&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;department_name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explanation&lt;/strong&gt;: Evaluates every department in the hospital. Active units (e.g., &lt;code&gt;Cardiology&lt;/code&gt;, 104 encounters) display their counts, while the newly introduced &lt;code&gt;Radiology&lt;/code&gt; department displays 0 encounters and KES  0.00 billed. An &lt;code&gt;INNER JOIN&lt;/code&gt; would have omitted &lt;code&gt;Radiology&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. &lt;code&gt;FULL OUTER JOIN&lt;/code&gt;: Complete Operational Ledger Reconciliation
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;md&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;department_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;catalog_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;record_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;master_departments&lt;/span&gt; &lt;span class="n"&gt;md&lt;/span&gt;
&lt;span class="k"&gt;FULL&lt;/span&gt; &lt;span class="k"&gt;OUTER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; 
    &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;md&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;department_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt; &lt;span class="k"&gt;IS&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt; &lt;span class="k"&gt;OR&lt;/span&gt; &lt;span class="n"&gt;md&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;department_name&lt;/span&gt; &lt;span class="k"&gt;IS&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explanation&lt;/strong&gt;: Surfaces edge cases on both ends: cataloged departments that treated zero patients, and clinical records tied to unrecognized department labels.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4. &lt;code&gt;CROSS JOIN&lt;/code&gt;: Generating Coverage Matrices
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;department_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shift_slot&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;department_name&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;
&lt;span class="k"&gt;CROSS&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;VALUES&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Morning (07:00 - 15:00)'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
           &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Evening (15:00 - 23:00)'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
           &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Night (23:00 - 07:00)'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;shift_slot&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;department_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shift_slot&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explanation&lt;/strong&gt;: Generates a 21-row scheduling grid (7 departments ,times 3 duty shifts) to seed hospital on-call rosters.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  5. &lt;code&gt;SELF JOIN&lt;/code&gt;: Cross-Infection Contact Tracing
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;date_of_visit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;patient_a_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;diagnosis&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;patient_a_diagnosis&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;patient_b_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;diagnosis&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;patient_b_diagnosis&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;
&lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; 
    &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt; 
   &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;date_of_visit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;date_of_visit&lt;/span&gt;
   &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt; &lt;span class="c1"&gt;-- Prevents self-matching and duplicate inverted pairs&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;diagnosis&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Typhoid'&lt;/span&gt; &lt;span class="k"&gt;OR&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;diagnosis&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Typhoid'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explanation&lt;/strong&gt;: Joins the dataset to itself to detect instances where multiple patients shared a department on the same calendar day with a communicable condition (&lt;code&gt;Typhoid&lt;/code&gt;), supporting hospital infection-control audits.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. Common Table Expressions (CTEs)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Concept Overview
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Common Table Expression (CTE)&lt;/strong&gt; is a temporary, named result set defined using the &lt;code&gt;WITH&lt;/code&gt; keyword that exists only for the duration of the query. CTEs replace deeply nested subqueries with linear, top-down modules.&lt;/p&gt;




&lt;h3&gt;
  
  
  Basic and Multiple CTEs
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Practical Query: Benchmarking Department Collections Against Regional Targets
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;WITH&lt;/span&gt; &lt;span class="n"&gt;DepartmentSummary&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="c1"&gt;-- CTE 1: Compute total billing and patient volume per department&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt; 
        &lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;total_patients&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="k"&gt;SUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;department_revenue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;avg_patient_bill&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;
    &lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt;
&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="n"&gt;FacilityBenchmark&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="c1"&gt;-- CTE 2: Calculate facility-wide average department revenue&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt; 
        &lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;department_revenue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;mean_dept_revenue&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;DepartmentSummary&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;-- Main Outer Query: Combine CTEs with Joins to highlight high-performing units&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;total_patients&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;department_revenue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;department_revenue_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;avg_patient_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;avg_patient_bill_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;department_revenue&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;fb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mean_dept_revenue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;revenue_variance_kes&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;DepartmentSummary&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;
&lt;span class="k"&gt;CROSS&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;FacilityBenchmark&lt;/span&gt; &lt;span class="n"&gt;fb&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;department_revenue_kes&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What the Query Does&lt;/strong&gt;: Defines two sequential CTEs (&lt;code&gt;DepartmentSummary&lt;/code&gt; and &lt;code&gt;FacilityBenchmark&lt;/code&gt;) and references both in the final &lt;code&gt;SELECT&lt;/code&gt; block.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expected Result&lt;/strong&gt;: A comparative executive summary showing each department's total revenue alongside its variance from the facility-wide department mean text{KES  2,513,809.84).&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Recursive CTEs
&lt;/h3&gt;

&lt;p&gt;Recursive CTEs reference themselves in an iterative loop to traverse hierarchical, parent-child, or sequential data until a termination condition is reached.&lt;/p&gt;

&lt;p&gt;A recursive CTE consists of:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Anchor Member&lt;/strong&gt;: Initial query that sets the base result set.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;UNION ALL&lt;/code&gt;&lt;/strong&gt;: Operator combining iterations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Recursive Member&lt;/strong&gt;: Query referencing the CTE name, repeated until it returns an empty set.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Practical Query: Generating a Step-Down Patient Discharge Schedule
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;WITH&lt;/span&gt; &lt;span class="k"&gt;RECURSIVE&lt;/span&gt; &lt;span class="n"&gt;PatientFollowUpSchedule&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="c1"&gt;-- Anchor Member: Identify critical admitted patients requiring follow-up&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt; 
        &lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;first_name&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;last_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;patient_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;date_of_visit&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;scheduled_review_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;review_cycle&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;treatment_plan&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Admission'&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;diagnosis&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Diabetes'&lt;/span&gt;
      &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;date_of_visit&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="s1"&gt;'2025-01-01'&lt;/span&gt;

    &lt;span class="k"&gt;UNION&lt;/span&gt; &lt;span class="k"&gt;ALL&lt;/span&gt;

    &lt;span class="c1"&gt;-- Recursive Member: Project subsequent reviews at 30-day intervals (up to cycle 4)&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt; 
        &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patient_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scheduled_review_date&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;INTERVAL&lt;/span&gt; &lt;span class="s1"&gt;'30 days'&lt;/span&gt;&lt;span class="p"&gt;)::&lt;/span&gt;&lt;span class="nb"&gt;DATE&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;scheduled_review_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;review_cycle&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;PatientFollowUpSchedule&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;review_cycle&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;patient_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;review_cycle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;scheduled_review_date&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;PatientFollowUpSchedule&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;review_cycle&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What the Query Does&lt;/strong&gt;: Uses recursion to project a structured 4-cycle, 120-day outpatient management roadmap for diabetic patients admitted in 2025.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expected Result&lt;/strong&gt;: Four sequential rows per candidate patient, stepping forward 30 days per review cycle to automate preventative care scheduling.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  CTEs vs. Subqueries
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Common Table Expressions (CTEs)&lt;/th&gt;
&lt;th&gt;Subqueries&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Execution Flow&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Declared upfront; reads top-to-bottom like modular code.&lt;/td&gt;
&lt;td&gt;Nested inside-out; can be difficult to read when deeply indented.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reusability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Defined once in the &lt;code&gt;WITH&lt;/code&gt; clause and referenced multiple times.&lt;/td&gt;
&lt;td&gt;Must be copied and pasted if needed in multiple clauses.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Recursion&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Native support via &lt;code&gt;WITH RECURSIVE&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;Cannot perform recursive operations.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Placement Flexibility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Only declared at the start of a statement (&lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;INSERT&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt;).&lt;/td&gt;
&lt;td&gt;Can be embedded anywhere in &lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;FROM&lt;/code&gt;, &lt;code&gt;WHERE&lt;/code&gt;, or &lt;code&gt;HAVING&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  4. SQL Subqueries
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Concept Overview
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;subquery&lt;/strong&gt; is a &lt;code&gt;SELECT&lt;/code&gt; statement nested inside another SQL statement. Subqueries can execute independently or evaluate iteratively against outer query attributes.&lt;/p&gt;




&lt;h3&gt;
  
  
  Subquery Classifications
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scalar Subquery&lt;/strong&gt;: Returns exactly one row and one column (a single atomic value).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-Correlated Subquery&lt;/strong&gt;: Completely self-contained. Executes once; its output is handed off to the outer query.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Correlated Subquery&lt;/strong&gt;: References columns from the outer query row. Executes once for every candidate row evaluated by the outer query.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nested Subquery&lt;/strong&gt;: A subquery enclosed within another subquery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Row Set Operators (&lt;code&gt;IN&lt;/code&gt;, &lt;code&gt;EXISTS&lt;/code&gt;, &lt;code&gt;ANY&lt;/code&gt;, &lt;code&gt;ALL&lt;/code&gt;)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;IN&lt;/code&gt;: Tests if a candidate value matches any value in a list or subquery set.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;EXISTS&lt;/code&gt;: Evaluates boolean presence (True/False). Short-circuits immediately upon discovering the first matching record.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;gt; ANY&lt;/code&gt;: Matches if the value is greater than the &lt;strong&gt;minimum&lt;/strong&gt; value returned by the subquery.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;gt; ALL&lt;/code&gt;: Matches only if the value is greater than the &lt;strong&gt;maximum&lt;/strong&gt; value returned by the subquery.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Subquery Structural Placement
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. In the &lt;code&gt;SELECT&lt;/code&gt; Clause (Scalar Subquery)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;first_name&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;last_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;patient_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
         &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt; 
         &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
        &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;department_mean_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
                           &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt; 
                           &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
        &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;variance_from_dept_mean&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explanation&lt;/strong&gt;: Evaluates the department average as a scalar metric for each patient, displaying each bill's variance against its departmental mean.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. In the &lt;code&gt;FROM&lt;/code&gt; Clause (Derived Table)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;derived&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;doctor_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;derived&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;total_patients_seen&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;derived&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;total_billed_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;total_billed_kes&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt; 
        &lt;span class="n"&gt;doctor_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;total_patients_seen&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="k"&gt;SUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;total_billed_kes&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;
    &lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;doctor_name&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;derived&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;derived&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;total_patients_seen&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explanation&lt;/strong&gt;: Aggregates doctor throughput inside an in-memory virtual table (&lt;code&gt;derived&lt;/code&gt;), allowing the outer query to filter for high-volume physicians.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. In the &lt;code&gt;WHERE&lt;/code&gt; Clause (&lt;code&gt;EXISTS&lt;/code&gt; vs. &lt;code&gt;IN&lt;/code&gt; vs. &lt;code&gt;ALL&lt;/code&gt;)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- Query A: Correlated Subquery using EXISTS&lt;/span&gt;
&lt;span class="c1"&gt;-- Identifies doctors who have handled high-complexity surgeries exceeding KES 45,000&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt; 
    &lt;span class="n"&gt;k1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;doctor_name&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt; &lt;span class="n"&gt;k1&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="k"&gt;EXISTS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; 
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt; &lt;span class="n"&gt;k2&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;k2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;doctor_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;k1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;doctor_name&lt;/span&gt; 
      &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;k2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;treatment_plan&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Surgery'&lt;/span&gt;
      &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;k2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;45000&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;-- Query B: Non-Correlated Subquery using IN&lt;/span&gt;
&lt;span class="c1"&gt;-- Finds patients treated in departments that experienced pending bills exceeding KES 49,000&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;first_name&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;last_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;patient_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; &lt;span class="k"&gt;IN&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;payment_status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Pending'&lt;/span&gt; 
      &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;49000&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;-- Query C: Subquery using &amp;gt; ALL&lt;/span&gt;
&lt;span class="c1"&gt;-- Identifies encounters with bills greater than ALL pediatric encounters&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; 
    &lt;span class="n"&gt;patient_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;first_name&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;last_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;patient_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;ALL&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt; 
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;kenyan_hospital_health_records&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Pediatrics'&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explanation&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;EXISTS&lt;/code&gt;&lt;/strong&gt; halts processing for that doctor as soon as a single match is found, making it more efficient than scanning every row.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;IN&lt;/code&gt;&lt;/strong&gt; builds a discrete list of departments and checks for membership.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;&amp;gt; ALL&lt;/code&gt;&lt;/strong&gt; finds outlier bills across adult wards that exceed the single highest bill recorded anywhere in Pediatrics (KES  49,855.09).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Comparative Summary: CTEs vs. Window Functions vs. Subqueries
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- Analytical Need: Calculate Department Average Billing and Row Variances&lt;/span&gt;

&lt;span class="c1"&gt;-- Window Function Approach (Most concise, 1 table scan):&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;records&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;-- CTE Approach (Modular, reusable in subsequent joins):&lt;/span&gt;
&lt;span class="k"&gt;WITH&lt;/span&gt; &lt;span class="n"&gt;DeptAvg&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;avg_b&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;records&lt;/span&gt; &lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;avg_b&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;records&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;DeptAvg&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hospital_department&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;-- Scalar Correlated Subquery Approach (Repeated execution per row):&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bill_amount_kes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;records&lt;/span&gt; &lt;span class="n"&gt;r2&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;r2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dept&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dept&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;records&lt;/span&gt; &lt;span class="n"&gt;r1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Conclusion &amp;amp; Practical Engineering Best Practices
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Window Functions&lt;/strong&gt; replace complex self-joins when computing cumulative sums, rankings, or relative row metrics without collapsing the result set.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inner vs. Outer Joins&lt;/strong&gt; must be chosen deliberately to avoid dropping unmatched records (such as uninsured cash patients or newly added empty departments).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CTEs&lt;/strong&gt; make multi-stage transformations easier to read and maintain compared to deeply nested subqueries, and enable tree traversal via recursion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;EXISTS&lt;/code&gt;&lt;/strong&gt; is generally preferable to &lt;code&gt;IN&lt;/code&gt; for correlated subqueries over large datasets because it short-circuits as soon as the first match is identified.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>sql</category>
      <category>dbeaver</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>End-to-End Power BI Architecture: Transforming JCars Logistics from Dirty Flat Data to Executive Decision Support</title>
      <dc:creator>PRUDENCE KORIR</dc:creator>
      <pubDate>Sat, 26 Sep 2026 14:17:21 +0000</pubDate>
      <link>https://dev.to/prudence_korir_/end-to-end-power-bi-architecture-transforming-jcars-logistics-from-dirty-flat-data-to-executive-3796</link>
      <guid>https://dev.to/prudence_korir_/end-to-end-power-bi-architecture-transforming-jcars-logistics-from-dirty-flat-data-to-executive-3796</guid>
      <description>&lt;h1&gt;
  
  
  Transforming Dirty Automotive Logistics Data into Executive Decision Support in Power BI
&lt;/h1&gt;

&lt;p&gt;Building business intelligence dashboards for messy, real-world data requires far more than dropping charts onto a canvas. It demands rigorous exploratory auditing, robust Power Query ETL pipelines, structured DAX modeling, and executive-level storytelling.&lt;/p&gt;

&lt;p&gt;In this project, I engineered an end-to-end Power BI reporting solution for &lt;em&gt;JCars&lt;/em&gt;, a multi-branch automotive dealership and logistics network. Here is how I took an uncleaned transactional flat file and transformed it into a decision-support platform tracking &lt;em&gt;KES 1.905B&lt;/em&gt; in revenue across &lt;em&gt;276&lt;/em&gt; customer orders.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The Challenge: Uncleaned Flat File Data
&lt;/h2&gt;

&lt;p&gt;The source data (&lt;code&gt;Jcars_data.csv&lt;/code&gt;) captured transaction-level vehicle sales, delivery tracking, and financing data. However, the raw data presented major data quality challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mixed Currencies:&lt;/strong&gt; Monetary columns contained mixed string prefixes (&lt;code&gt;USD&lt;/code&gt;, &lt;code&gt;KES&lt;/code&gt;) alongside bare numbers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inconsistent Categorical Text:&lt;/strong&gt; Branch locations, vehicle makes, and delivery statuses suffered from varied casing (&lt;code&gt;toyota&lt;/code&gt;, &lt;code&gt;TOYOTA&lt;/code&gt;) and split synonyms (&lt;code&gt;Delivered&lt;/code&gt;, &lt;code&gt;completed&lt;/code&gt;, &lt;code&gt;Done&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Locale-Sensitive Dates:&lt;/strong&gt; Conflicting &lt;code&gt;DD/MM/YYYY&lt;/code&gt; and &lt;code&gt;MM/DD/YYYY&lt;/code&gt; formats caused parse errors and nulls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Governance Traps:&lt;/strong&gt; Dispatched units showing delivery timestamps prior to order placement dates, and cancelled orders retaining "Paid" settlement statuses.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. Power Query ETL &amp;amp; Data Standardization
&lt;/h2&gt;

&lt;p&gt;To ensure the downstream semantic model remained performative and reliable, all cleaning logic was addressed upfront:&lt;/p&gt;

&lt;h3&gt;
  
  
  Currency Normalization
&lt;/h3&gt;

&lt;p&gt;All values were standardized to Kenya Shillings (KES). Text extraction logic stripped currency prefixes, applied an exchange rate baseline of &lt;em&gt;1 USD = 130 KES&lt;/em&gt;, and cast columns to native currency data types:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Final KES = Raw Numeric Value * Exchange Rate&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Date Engine Resiliency
&lt;/h3&gt;

&lt;p&gt;To resolve locale parsing errors across operating systems, I implemented locale-aware date parsing with conditional fallbacks, preserving chronological continuity across all order and delivery timelines.&lt;/p&gt;

&lt;h3&gt;
  
  
  Categorical Bucketing
&lt;/h3&gt;

&lt;p&gt;Using DAX and M transformations, over a dozen fragmented delivery labels were mapped into four unified operational states:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Delivered (encompassing "Delivered", "Completed", "Done")&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In Transit (encompassing "On the way", "At the yard", "Dispatched")&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cancelled&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Returned&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Dimensional Modeling &amp;amp; DAX Architecture
&lt;/h2&gt;

&lt;p&gt;Rather than computing ad-hoc aggregations inside visual fields, I established a dedicated _Measures table housing normalized DAX logic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// 1. Top-Line Turnover
Total Orders = DISTINCTCOUNT(Jcars_data[Order ID])
Total Units Sold = SUM(Jcars_data[Units Sold])
Total Revenue = SUMX(Jcars_data, Jcars_data[Units Sold] * Jcars_data[Unit Selling Price])

// 2. Cost &amp;amp; Profitability Mechanics
Total Cost = SUMX(Jcars_data, (Jcars_data[Units Sold] * Jcars_data[Unit Cost]) + Jcars_data[Clean_Logistics_Cost])
Gross Profit = [Total Revenue] - [Total Cost]
Gross Profit Margin = DIVIDE([Gross Profit], [Total Revenue], 0)

// 3. Operational Friction
Return Rate = 
DIVIDE(
    CALCULATE([Total Units Sold], Jcars_data[Clean_Delivery_Status] = "Returned"),
    [Total Units Sold],
    0
)

Cancellation Rate = 
DIVIDE(
    CALCULATE([Total Orders], Jcars_data[Clean_Delivery_Status] = "Cancelled"),
    [Total Orders],
    0
)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Core Benchmark Results:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Total Revenue: KES 1,904,596,846.00&lt;/p&gt;

&lt;p&gt;Total Gross Profit: KES 393,327,843.00&lt;/p&gt;

&lt;p&gt;Gross Profit Margin: 20.65%&lt;/p&gt;

&lt;p&gt;Units Sold: 466 Units across 276 Orders&lt;/p&gt;

&lt;p&gt;Return Rate: 31.88%&lt;/p&gt;

&lt;p&gt;Cancellation Rate: 13.41%&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  4. The 3-Page Executive Dashboard
&lt;/h2&gt;

&lt;p&gt;The report was organized into three purpose-built views with persistent button navigation:&lt;br&gt;
 &lt;strong&gt;1. Executive Overview&lt;/strong&gt;: 6 high-level KPI cards, revenue ranking by vehicle make, branch turnover distribution, and monthly sales trends.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0yaxxp2d9z4dis7yhf7a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0yaxxp2d9z4dis7yhf7a.png" alt=" " width="799" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Vehicle Performance&lt;/strong&gt;: A hierarchical drill-down matrix (Make, Model), vehicle body type share, and a Margin % vs. Return Rate scatter chart with reference quadrants separating star performers from high-risk liabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frk7jtmkmx7howdu40ccd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frk7jtmkmx7howdu40ccd.png" alt=" " width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Operations &amp;amp; Logistics&lt;/strong&gt;: Detailed operational metrics comparing order delivery statuses, branch order volumes, and a clustered column chart evaluating Collected Delivery Fees vs. Actual Logistics Costs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvstfrqy38wv2lmesic0p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvstfrqy38wv2lmesic0p.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Key Strategic Takeaways
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;The High-End Return Paradox:&lt;/strong&gt;&lt;/em&gt; While luxury brands like BMW drive healthy unit margins, they exhibit an alarming 55.56% return rate. Recommending mandatory pre-delivery mechanical inspections (PDI) before customer dispatch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Logistics Subsidy Leakage:&lt;/em&gt;&lt;/strong&gt; Upcountry and high-volume branches frequently incur logistical costs that exceed the flat delivery fees billed to customers. Introducing dynamic, distance-based freight pricing will protect operating margins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pre-Delivery Churn:&lt;/em&gt;&lt;/strong&gt; Extended fulfillment delays account for a 13.41% cancellation rate, indicating an urgent need to automate inventory release workflows at regional holding yards.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;A successful analytics project connects low-level data transformation directly to executive decision-making. By pairing resilient ETL processes with intentional visual design, this dashboard turns fragmented logistics records into actionable operational clarity.&lt;/p&gt;

</description>
      <category>powerfuldevs</category>
      <category>dataengineering</category>
      <category>dax</category>
      <category>businessintelligence</category>
    </item>
    <item>
      <title>Making Sense of Power BI: Data Modelling, Relationships, and Joins</title>
      <dc:creator>PRUDENCE KORIR</dc:creator>
      <pubDate>Mon, 14 Sep 2026 15:25:41 +0000</pubDate>
      <link>https://dev.to/prudence_korir_/making-sense-of-power-bi-data-modelling-relationships-and-joins-31ln</link>
      <guid>https://dev.to/prudence_korir_/making-sense-of-power-bi-data-modelling-relationships-and-joins-31ln</guid>
      <description>&lt;p&gt;When raw data hits Power BI, it’s rarely clean or ready for reporting. Data modeling is the process of structuring and connecting your tables so your reports load fast, your DAX measures calculate accurately, and your visuals actually make sense.&lt;/p&gt;

&lt;p&gt;Getting your data model right early saves hours of DAX troubleshooting down the road. Here is a breakdown of the core concepts you need to build robust Power BI reports.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Data Modeling Architecture
&lt;/h2&gt;

&lt;p&gt;How you arrange your tables determines how efficient your report will be.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flat Table Approach:&lt;/strong&gt; Combining everything into a single, massive spreadsheet-style table.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pros&lt;/em&gt;: Quick to set up for a fast sanity check.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cons&lt;/em&gt;: Tons of redundant data, massive file sizes, and terrible DAX performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Star Schema (Best Practice):&lt;/strong&gt; Placing a central fact table (containing numerical metrics) surrounded by descriptive lookup tables.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pros&lt;/em&gt;: Blazing-fast engine performance, clean DAX, and clear reporting paths.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cons&lt;/em&gt;: Requires upfront work to break down flat tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Snowflake Schema:&lt;/strong&gt; Similar to a Star Schema, but dimension tables branch out into further sub-dimension tables (e.g., a Product table linking to a SubCategory table, which links to a Category table).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pros&lt;/em&gt;: Slightly reduces data storage redundancy.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cons&lt;/em&gt;: Creates a complex model, makes DAX harder to write, and slows down report filtering.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Fact Tables vs. Dimension Tables
&lt;/h2&gt;

&lt;p&gt;Building a Star Schema requires dividing your data into two distinct table types:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fact Tables&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What they are:&lt;/em&gt; Log files of business events or transaction records.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Contents:&lt;/em&gt; Numeric measurements, monetary values, timestamps, and foreign keys.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Examples:&lt;/em&gt; FactSales, FactInventoryLogs, FactOrders.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Grain:&lt;/em&gt; Defines what a single row represents (e.g., one row per line item on a customer receipt).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dimension Tables&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What they are:&lt;/em&gt; Context tables that provide descriptive details for your metrics.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Contents:&lt;/em&gt; Text, attributes, names, dates, and categories.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Examples:&lt;/em&gt; DimCustomer, DimProduct, DimStore, DimDate.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example: In an electronics store, FactSales logs that on Friday, CustomerID #402 bought ProductID #88 for $1,200. Power BI uses DimCustomer to see that #402 is Sarah, and DimProduct to look up that #88 is a 4K Monitor.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Relationships &amp;amp; Directionality
&lt;/h2&gt;

&lt;p&gt;Relationships serve as the connectors between tables so filters apply across visuals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One-to-Many (1:*):&lt;/strong&gt; The standard relationship pattern. One unique ID in a Dimension table connects to multiple entries in a Fact table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One-to-One (1:1):&lt;/strong&gt; Rare. Used mainly when splitting large tables for privacy or optimization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Many-to-Many (&lt;em&gt;:&lt;/em&gt;):&lt;/strong&gt; Complex and risky. Can cause ambiguous filter behavior and inaccurate total calculations.&lt;/p&gt;

&lt;p&gt;Key Mechanics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Keys&lt;/em&gt;: Dimension tables use a Primary Key (strictly unique values). Fact tables use a Foreign Key (repeated values).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Active vs. Inactive&lt;/em&gt;: Only one active relationship (solid line) can exist between two tables at a time. Alternate dates (like OrderDate vs. ShipDate) require inactive relationships (dotted lines) activated via DAX (USERELATIONSHIP).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Filter Direction&lt;/em&gt;: Stick to single-direction filtering (Dimension $\rightarrow$ Fact). Avoid bi-directional filtering unless absolutely necessary, as it introduces circular paths and degrades performance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Power Query Joins vs. Power BI Relationships
&lt;/h2&gt;

&lt;p&gt;It is common to confuse Power Query Merges with Data Model Relationships, but they run at completely different stages:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Feature&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Power Query Merges (Joins)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Power BI Data Model Relationships&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;When it runs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;During data transformation (before load).&lt;/td&gt;
&lt;td&gt;After data is loaded into memory.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Combines columns physically into one wider table.&lt;/td&gt;
&lt;td&gt;Keeps tables separate, connected via virtual relationships.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best Used For&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Consolidation of messy dimension tables.&lt;/td&gt;
&lt;td&gt;90% of your reporting and metric modeling.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Power Query Join Types:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inner Join&lt;/strong&gt;: Keeps only matching rows from both tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Left Outer Join&lt;/strong&gt;: Keeps all rows from the primary table, adding matching details from the secondary table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Left Anti Join&lt;/strong&gt;: Keeps only rows from the primary table that have no match in the secondary table (great for identifying unassigned IDs).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;For standard analytics, target a Star Schema with One-to-Many (1:*) relationships and Single Directional filters. Power BI’s engine is engineered specifically for this structure, giving you fast load times, concise DAX, and scalable reports.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>powerfuldevs</category>
      <category>analytics</category>
    </item>
    <item>
      <title>My First GitHub Project: From a Local Folder to GitHub Using Git and SSH</title>
      <dc:creator>PRUDENCE KORIR</dc:creator>
      <pubDate>Sun, 23 Aug 2026 02:50:10 +0000</pubDate>
      <link>https://dev.to/prudence_korir_/my-first-github-project-from-a-local-folder-to-github-using-git-and-ssh-4k5e</link>
      <guid>https://dev.to/prudence_korir_/my-first-github-project-from-a-local-folder-to-github-using-git-and-ssh-4k5e</guid>
      <description>&lt;p&gt;When I first walked through the gates of LuxDevHq, my first thought was "endless possibilities". However, I was intimidated. I did not think I would measure up. But when I attended my first class, I learned that building something great starts with a great foundation and at LuxDevHq, that means mastering all the basics.&lt;/p&gt;

&lt;p&gt;In the last week, I worked on setting up a local project on my desktop which I then pushed to a live repository on GitHub using the command line.&lt;/p&gt;

&lt;p&gt;I was working with a "Kenya_Hospital_Health_Records" csv dataset which was to be stored in a sub-folder called "data" within the main folder on the desktop which is named after the file.&lt;/p&gt;

&lt;p&gt;These are the steps I took:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Local Project Set Up
&lt;/h2&gt;

&lt;p&gt;Open the bash terminal and navigate to the desktop using the &lt;code&gt;cd&lt;/code&gt; command and create the main folder along with the sub-folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;Desktop
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; Kenya_Hospital_Health_Records_Project/Data
&lt;span class="nb"&gt;cd &lt;/span&gt;Kenya_Hospital_Health_Records_Project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy and paste the file into the sub-folder.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating the README.md File
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"# KENYA HEALTH RECORDS ANALYSIS"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; README.md
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"##Project Overview"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; README.md
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"This is a project analysis for a hospital health records"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; README.md
&lt;span class="nb"&gt;cat &lt;/span&gt;README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;gt;&lt;/code&gt; operator adds new text to the file.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; operator adds text to already written text.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cat README.md&lt;/code&gt; prints the contents of the file for review.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nano README.md&lt;/code&gt; edits the file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Creating a Tracked Git Repository
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;git init&lt;/code&gt; creates and empty repository.&lt;br&gt;
&lt;code&gt;git status&lt;/code&gt; checks the status of the repository.&lt;br&gt;
&lt;code&gt;git add .&lt;/code&gt; adds everything to the current repository.&lt;br&gt;
&lt;code&gt;git commit -m "Kenya Hospital Records Project&lt;/code&gt; the commit message helps to remember whatever it entails. &lt;br&gt;
&lt;code&gt;git remote add origin https://github.com/prudencejeronokorir-code/Git-Commands-Class.git&lt;/code&gt; this is the SSH key that links the local repository to the empty GitHub repository.&lt;br&gt;
&lt;code&gt;ssh -T git@github.com&lt;/code&gt; to confirm that the SSH key works&lt;br&gt;
&lt;code&gt;git push -u origin main&lt;/code&gt; pushes the local main branch to the remote origin on GitHub&lt;br&gt;
   *-u command helps avoid typing out the branch name upon every update.&lt;/p&gt;

&lt;p&gt;And with that you are done!!!&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>dataengineering</category>
    </item>
  </channel>
</rss>
