<?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: Juliet Kiplimo</title>
    <description>The latest articles on DEV Community by Juliet Kiplimo (@juliet_kiplimo_b9a825c95a).</description>
    <link>https://dev.to/juliet_kiplimo_b9a825c95a</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3708647%2F61da125e-fd82-49f9-a0f9-c01418776532.jpg</url>
      <title>DEV Community: Juliet Kiplimo</title>
      <link>https://dev.to/juliet_kiplimo_b9a825c95a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/juliet_kiplimo_b9a825c95a"/>
    <language>en</language>
    <item>
      <title>PostgreSQL and Power BI Integration Guide.</title>
      <dc:creator>Juliet Kiplimo</dc:creator>
      <pubDate>Sun, 22 Mar 2026 19:29:45 +0000</pubDate>
      <link>https://dev.to/juliet_kiplimo_b9a825c95a/postgresql-and-power-bi-integration-guide-533</link>
      <guid>https://dev.to/juliet_kiplimo_b9a825c95a/postgresql-and-power-bi-integration-guide-533</guid>
      <description>&lt;p&gt;Companies in the Big Data industry are now more than ever looking for practical, simple tools for data retrieval, storage, and visualisation that will allow them to easily store and use the data they collect to make business decisions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Analysis and visualisation:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Power BI is among the most powerful data analysis and visualisation tools created by Microsoft to turn raw data into interactive insights. Power BI has the ability to pull data from many sources, clean it, analyze it, and then create visuals that are easy to understand and actionable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;SQL Relational Databases:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Relational SQL Databases&lt;/em&gt; (such as MySQL, Azure SQL, PostgreSQL) excel at handling large volumes of structured data with ACID compliance, ensuring integrity, consistency, and security through features like indexing and stored procedures.&lt;/p&gt;

&lt;h4&gt;
  
  
  Importance of SQL databases for storing and managing analytical data.
&lt;/h4&gt;

&lt;p&gt;In most organizations, vital business operation records or data, such as sales transactions, inventory data, and financial metrics, are stored in a central SQL database rather than several scattered spreadsheets.&lt;/p&gt;

&lt;p&gt;SQL Databases enable different departments in a company to have a central source of information that they can all rely on for business operations, which enables cohesion and unified, data-informed decisions across the departments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Benefits of intergrating with Power Bi for Analysis:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Integrating &lt;strong&gt;Power BI&lt;/strong&gt; to a company's database allows the relevant stakeholders to view and easily access real-time, reliable, and scalable business intelligence stored in their centralised database. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;SQL databases provide the robust foundation that turns raw data/records into actionable insights when paired with visualization tools like Power BI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  How to connect Power BI to a PostgreSQL Database Locally.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Launch your Power BI Application and click the Get data option, scroll down the options, and click More options:&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Fp5g1npwkv3okef21cg5j.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.amazonaws.com%2Fuploads%2Farticles%2Fp5g1npwkv3okef21cg5j.png" alt="Power BI Interface" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the 3rd option labelled Databases and scroll down the database options till you get your preferred database.&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Fclye5bsrkgre1jrpvj27.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.amazonaws.com%2Fuploads%2Farticles%2Fclye5bsrkgre1jrpvj27.png" alt="Power BI Interface" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launch your DBMS and navigate to your connection details. Note down your database name, your port number, and host/server details. In this case, I am using DBEAVER to manage my Postgres database.&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Fa6v6myec98wdselis83m.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.amazonaws.com%2Fuploads%2Farticles%2Fa6v6myec98wdselis83m.png" alt="DBMS" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter the Host details, database name, username, and password from your DMBS connection details and connect to the database. &lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2F4vsqjg2fpzy82wgapbks.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.amazonaws.com%2Fuploads%2Farticles%2F4vsqjg2fpzy82wgapbks.png" alt="Power BI" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once connected, it will load the tables in your database into Power BI, select the tables you would like to use, and click " Transform " to load your data into the Power Query for cleaning &lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Fqgmkzl5nm5k0j7gxsx80.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.amazonaws.com%2Fuploads%2Farticles%2Fqgmkzl5nm5k0j7gxsx80.png" alt="Power BI" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After cleaning, load the data into the model view, create and review the relationships between the tables using the common columns.&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Fx8a1ykfcwpgwh9nxhy4t.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.amazonaws.com%2Fuploads%2Farticles%2Fx8a1ykfcwpgwh9nxhy4t.png" alt="Power BI" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to connect Power BI to a cloud service, Aiven PostgreSQL.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;On your browser, navigate to &lt;code&gt;console.aiven.io&lt;/code&gt; and login to your aiven account.&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Flooeorls5k0enjk9vmyv.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.amazonaws.com%2Fuploads%2Farticles%2Flooeorls5k0enjk9vmyv.png" alt="Aiven Console" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect your database by first creating a service on the Aiven console by clicking the "create service " button. Select your DB in the options provided.&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Fqtnkkz3a8edsmcjfc5xy.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.amazonaws.com%2Fuploads%2Farticles%2Fqtnkkz3a8edsmcjfc5xy.png" alt="Aiven Console" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the new service you created and open the service overview page, and obtain the connection details from Aiven (host, port, database name, username, and password).&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Fpyfmrl8qry43g78ag1f0.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.amazonaws.com%2Fuploads%2Farticles%2Fpyfmrl8qry43g78ag1f0.png" alt="Aiven Connection details" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the service overview page, download the SSL certificate and save it on your PC. The file format saved is &lt;code&gt;ca.pem.&lt;/code&gt; Rename to &lt;code&gt;ca.crt.&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Fueonzdxkabwjn7gfuxw6.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.amazonaws.com%2Fuploads%2Farticles%2Fueonzdxkabwjn7gfuxw6.png" alt="SSL certificate" width="506" height="644"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Now let's connect your Aiven service to your Database Management system.
&lt;/h4&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.amazonaws.com%2Fuploads%2Farticles%2Fod8aexrxp948m0gmjsfm.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.amazonaws.com%2Fuploads%2Farticles%2Fod8aexrxp948m0gmjsfm.png" alt="Aiven Service Overview" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launch your DBMS; in this case, I am using Dbeaver to manage my PostgreSQL database. Enter the connection details you had earlier recorded from your Aiven service: Database name, Host details, user name, and password. &lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2Feek7tx9uotcq8a9s1qfi.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.amazonaws.com%2Fuploads%2Farticles%2Feek7tx9uotcq8a9s1qfi.png" alt="Dbeaver DBMS" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In conclusion, integrating a powerful analysis and visualisation tool like Power BI with your central database allows the company to leverage the efficiency with which a relational DB like PostgreSQL handles the storage, computation, and management of large sets of data, coalesced with the ability of Power BI to extract that data from multiple sources, clean analyse, and prepare  interactive dashboards and reports that will propel business growth&lt;/strong&gt; &lt;/p&gt;

</description>
      <category>programming</category>
      <category>powerfuldevs</category>
      <category>postgressql</category>
      <category>powerplatform</category>
    </item>
    <item>
      <title>Mastering Joins and Window SQL Functions for Relational Databases.</title>
      <dc:creator>Juliet Kiplimo</dc:creator>
      <pubDate>Tue, 03 Mar 2026 13:54:29 +0000</pubDate>
      <link>https://dev.to/juliet_kiplimo_b9a825c95a/joins-and-window-sql-functions-for-relational-databases-50h8</link>
      <guid>https://dev.to/juliet_kiplimo_b9a825c95a/joins-and-window-sql-functions-for-relational-databases-50h8</guid>
      <description>&lt;p&gt;This article will explain SQL Joins and Window Functions — two powerful tools that will help you query and analyze relational data.&lt;/p&gt;

&lt;h3&gt;
  
  
  JOIN FUNCTIONS:
&lt;/h3&gt;

&lt;p&gt;These are SQL functions that combine rows from multiple tables that have a common column or a link called a Key.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The're 2 types of keys that allow for relationships between tables in a normalised database.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Primary Key:&lt;/strong&gt; These are unique identifiers in a table that, as the name suggests, uniquely identify a record/row in a table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Foreign Key:&lt;/strong&gt; A key that allows relationships between tables. The foreign key is a primary key in another table that also exists in the secondary table, i.e., 2 common columns that contain the same values, creating a commonality between the two tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Below is the Core syntax to perform a join:&lt;/em&gt;&lt;/strong&gt;&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;SELECT&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;columns_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="k"&gt;table_name&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;INNER&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="k"&gt;RIGHT&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="k"&gt;FULL&lt;/span&gt; &lt;span class="k"&gt;OUTER&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="k"&gt;CROSS&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;table_name_1&lt;/span&gt;
&lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;table_name_1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;table_name_2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;key&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;u&gt;The types of Joins.&lt;u&gt;&lt;/u&gt;
&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. INNER join:&lt;/strong&gt;&lt;br&gt;
This joins 2 tables that have similar rows. It performs an intersection, and the output is the common rows between the two tables. You can also inner join multiple tables by nesting the joins using sequential joins method.&lt;/p&gt;

&lt;p&gt;As shown:&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;Select&lt;/span&gt; 
&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;orderID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CustomerName&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;Shipping_Name&lt;/span&gt;
&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="n"&gt;o&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;Customers&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="o"&gt;=&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;Shippers&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shipperID&lt;/span&gt; &lt;span class="o"&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;shipper_id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inner Joins are effective in controlling Nulls or Missing values when performing queries.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This is similar to the Intersect SQL set operator.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Intersect set operator syntax example where a filter is applied&lt;/strong&gt; &lt;br&gt;
&lt;code&gt;&lt;br&gt;
SELECT column_name FROM table_name  WHERE ()&lt;br&gt;
INTERSECT&lt;br&gt;
SELECT column_name FROM table_name  WHERE ()&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.LEFT Join:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;This combines all the rows from the left table and matching rows that exist in the second table. This join will also show all missing records.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practical Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Business question: Show every customer and their total order amount. Include customers who never ordered (This counts for retention analysis).&lt;/em&gt;&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;SELECT&lt;/span&gt; 
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;city&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;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;amount&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_spent&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;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;order_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;order_count&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;customers&lt;/span&gt; &lt;span class="k"&gt;c&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;orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; 
    &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3.RIGHT Join:&lt;/strong&gt; &lt;br&gt;
The exact opposite of the left outer joins, where the join will output all the rows in the right table and the matching rows in the left table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.FULL(OUTER):&lt;/strong&gt;&lt;br&gt;
It combines all rows from both tables; this is rarely used and expensive because it combines all the data from both tables.&lt;/p&gt;

&lt;p&gt;This Join is Similar to the &lt;strong&gt;UNION ALL&lt;/strong&gt; &lt;em&gt;SQL set operator&lt;/em&gt; that will combine all data from both select operations and will include null values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5.CROSS Join:&lt;/strong&gt;&lt;br&gt;
This type of join performs a Cartesian product, where it combines the rows from both tables to show possible combinations as a single result i.e (AxB = AB). It will not display missing records.&lt;/p&gt;
&lt;h3&gt;
  
  
  WINDOW FUNCTIONS:
&lt;/h3&gt;

&lt;p&gt;Window functions perform calculations across a set of rows related to the current selected row, but without collapsing the result set into a single result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What this means:&lt;/strong&gt;&lt;br&gt;
 A standard aggregate function like SUM or AVG collapses all the records to an individual result/row that shows the total or average for the whole selected set as a single result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But..&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Window Functions allow you to see the average right next to each record for every single row. You keep the individual details and the summary data at the same time. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Window functions are identified by the &lt;strong&gt;OVER clause&lt;/strong&gt;, which defines the "window" of data the function should look at.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Syntax for window functions:&lt;/strong&gt;&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;Select&lt;/span&gt; &lt;span class="k"&gt;column_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;column_name_2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&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;order&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;partition&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="k"&gt;column_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;new_column_name&lt;/span&gt;
&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="k"&gt;table_name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;To Note:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;&lt;br&gt;
Order by: Used to sort in ascending or descending order. &lt;br&gt;
Partition by: is used to group in a window function&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
&lt;u&gt;&lt;strong&gt;Types of Window Functions:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. ROW_NUMBER () OVER (order/partition by..):&lt;/strong&gt;&lt;br&gt;
This window function assigns a unique sequence of numbers to each row.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. RANK ():&lt;/strong&gt;&lt;br&gt;
This function allows you to rank your data either in ascending or descending order. It will skip the next rank value in a tie situation. i.e if two rows are tied at rank 2, then the next record will be ranked 4th, not 3rd.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. DENSE_RANK () OVER (order/partition by..):&lt;/strong&gt; &lt;br&gt;
This works the same as the rank window function, but the difference is that in the event of a tie, the next Rank assigned won't skip or have gaps. i.e If two rows have tied at rank 2, the next record will still be ranked 3rd.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. NTILE(n) OVER (order/partition by..):&lt;/strong&gt;&lt;br&gt;
This function allows you to divide a set of rows into roughly equal parts that have been specifed. E,g NTILE(4) will divide the selected rows into 4 roughly equal parts; we say roughly to mean not all parts will always have the same number of rows. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. LAG ():&lt;/strong&gt;&lt;br&gt;
This function will retrieve the previous value from the previous row, e.g if you want to compare current salary and previous salary for an employee&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. LEAD ():&lt;/strong&gt; &lt;br&gt;
This function will retrieve the next value in the next row. Used in comparisons and even calculating lead time days e.g you can subtract the order_date from the result of the lead() function and display the difference as the Lead time days.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example in syntax&lt;/strong&gt;&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;select&lt;/span&gt; &lt;span class="n"&gt;order_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;order_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;customer_id&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;order_date&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;order&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;order_date&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;next_order_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
&lt;span class="n"&gt;datediff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;day&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;order_date&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;order_date&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;customer_id&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;order_date&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;lead_time_days&lt;/span&gt;
&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;7.AGGREGATE FUNCTIONS:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are functions that calculate the sum, average, MAX and MIN of values in a table. You can perform an aggregate across a set of rows by combining the aggregate function with the (over by / partiton by) clauses and specifying the table aliases when specifying the column.&lt;/p&gt;

&lt;p&gt;Well, there you have it!&lt;/p&gt;

&lt;p&gt;Let me know what your thoughts are on this article.&lt;/p&gt;

&lt;p&gt;Adios.&lt;/p&gt;

</description>
      <category>sqlserver</category>
      <category>postgressql</category>
      <category>datascience</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>Data-driven decision making using Power BI.</title>
      <dc:creator>Juliet Kiplimo</dc:creator>
      <pubDate>Wed, 11 Feb 2026 20:22:27 +0000</pubDate>
      <link>https://dev.to/juliet_kiplimo_b9a825c95a/data-driven-decision-making-using-power-bi-kba</link>
      <guid>https://dev.to/juliet_kiplimo_b9a825c95a/data-driven-decision-making-using-power-bi-kba</guid>
      <description>&lt;p&gt;If you are here, you are probably a data scientist or data engineer, looking for a powerful, easy-to-use business intelligence tool for analysis and visualisation, or a business owner looking to understand your business data and make insightful business decisions.&lt;/p&gt;

&lt;p&gt;What are its advantages? How does it give you a cutting edge as a professional in the Big Data industry? &lt;/p&gt;

&lt;p&gt;Well, let me tell you everything I know about this powerful tool!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Power BI Architecture:&lt;u&gt;&lt;/u&gt;
&lt;/u&gt;
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Flow of data from a messy raw data flat table to a one-page interactive dashboard.
&lt;/h4&gt;

&lt;p&gt;Power BI comes in 4 components that allow you to use it locally or as a service on the cloud. These components are: &lt;br&gt;
&lt;code&gt;Power BI Desktop, Power Bi service( Cloud), Power BI Mobile, and Report Server.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Data Sources:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Power BI is very popular because of its ability to pull data from numerous sources, making it compatible with most systems that store raw data. These sources include, but are not limited to, Excel, SQL Server, Web applications, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Data Preparation &amp;amp; Transformation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data transformation is a very important step in data analysis. It is impossible to model or make sense of data that is full of formatting errors, blanks, and duplicates.&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.amazonaws.com%2Fuploads%2Farticles%2Favcdkzb7bhf6dw2smz34.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.amazonaws.com%2Fuploads%2Farticles%2Favcdkzb7bhf6dw2smz34.png" alt="Power Query" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Power Query tool&lt;/em&gt;&lt;/strong&gt; is a built-in tool in Power BI that uses the ETL (Extract, Transform, Load) process to clean and transform a big data set before loading it for analysis. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This process entails removing duplicates, changing incorrect data types, unifying blanks or null values, and trimming extra text characters before loading the data for analysis and visualisation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Data Modelling &amp;amp; Analysis:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Relationships, Joins and Schemas&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Relationships&lt;/em&gt;&lt;/strong&gt; are how Power BI connects tables so that data can flow correctly between them.&lt;/p&gt;

&lt;p&gt;Power Bi allows you to easily create and manage relationships between fact and dimension tables. It enables you to arrange cleaned data in schemas that structure the data for analysis, easy update, and retrieval.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Joins&lt;/em&gt;&lt;/strong&gt; are used in Power BI to physically combine data from two tables into a single table. They are performed in Power Query during the data preparation stage, before the data is loaded into the Power BI model.&lt;/p&gt;

&lt;p&gt;Designing a clear and well-structured model using fact tables, dimension tables, and an appropriate schema is essential for effective and scalable analysis. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;DAX (Data Analysis Expressions)&lt;/em&gt;&lt;/strong&gt; is a formula language designed specifically for analytical and business intelligence calculations, such as:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;totals, averages, percentages, rankings, comparisons.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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.amazonaws.com%2Fuploads%2Farticles%2Fc6r592c56cgwkaxh6l43.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.amazonaws.com%2Fuploads%2Farticles%2Fc6r592c56cgwkaxh6l43.png" alt="Dax Function" width="800" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DAX is used to build measures, calculated columns, and calculated tables that help transform raw data into meaningful insights.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Visualization and reporting.&lt;/strong&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F9ffi1phtmkygdppsjgsw.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.amazonaws.com%2Fuploads%2Farticles%2F9ffi1phtmkygdppsjgsw.png" alt="Sample Dashboard" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Power Bi visualisation and filter panes allow you to easily create numerous captivating visuals like charts, graphs, reports, and Interactive dashboards.&lt;/p&gt;

&lt;p&gt;Dashboards are a one page Interractive interface that displays Key Insights that a Business needs to make informed decisions. It is a single-screen visual summary of the most important metrics and trends needed &lt;br&gt;
to monitor performance and make decisions. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;A dashboard&lt;/em&gt;&lt;/strong&gt; is not just a collection of random charts and visuals, but a carefully thought-out display of all the information that provides answers needed to key Business questions. They should be precise and accurate, giving the stakeholder a chance to filter out data using Filters and Slicers.&lt;/p&gt;

&lt;p&gt;There, now you know everything I know!&lt;/p&gt;

&lt;p&gt;Well, almost everything :) .....&lt;/p&gt;

&lt;p&gt;Signed&lt;br&gt;
Jules.&lt;/p&gt;

</description>
      <category>data</category>
      <category>datascience</category>
      <category>dataengineering</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Data Modelling &amp; Schemas - Power BI</title>
      <dc:creator>Juliet Kiplimo</dc:creator>
      <pubDate>Mon, 02 Feb 2026 17:21:17 +0000</pubDate>
      <link>https://dev.to/juliet_kiplimo_b9a825c95a/power-bi-schemas-modelling-guide-8kf</link>
      <guid>https://dev.to/juliet_kiplimo_b9a825c95a/power-bi-schemas-modelling-guide-8kf</guid>
      <description>&lt;h1&gt;
  
  
  What is Power BI?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Power BI&lt;/em&gt;&lt;/strong&gt; is a business Intelligence tool built by Microsoft that turns raw data into interactive insights.&lt;/p&gt;

&lt;p&gt;It has a very user-friendly interface that allows you to create a beautiful, comprehensive dashboard easily. &lt;/p&gt;

&lt;p&gt;Power BI gained its popularity because of its versatility; it allows you to get data from numerous sources, Ms Excel, Csv files, etc, clean it, analyze it, and then create visuals that are easy to understand.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Types of Power BI application:&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Power BI Desktop:&lt;/strong&gt; Is a free Windows application for creating reports and dashboards. You connect your data, clean it, build visualizations, and save your reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Power BI Service (Cloud):&lt;/strong&gt; This is the cloud-based version of Power BI. Once you’ve created your reports in Power BI Desktop, you can publish them to Power BI Service for sharing, collaboration, and real-time updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Power BI Mobile:&lt;/strong&gt; This is the mobile app that allows you to access your Power BI reports on the go, whether you’re using an iPhone or Android device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Power BI Report Server:&lt;/strong&gt; Power BI Report Server lets you host reports on your own servers securely.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Install Desktop Version:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1. Download and Install:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Go to the Microsoft store on your PC or the official Power BI website and install Power BI Desktop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2. Open Power BI Desktop:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After installation, launch Power BI Desktop. &lt;/p&gt;

&lt;p&gt;Click 'Blank report' to start a new project.&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.amazonaws.com%2Fuploads%2Farticles%2Fpldu86dsef0n4x67hzph.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.amazonaws.com%2Fuploads%2Farticles%2Fpldu86dsef0n4x67hzph.png" alt="Power Bi" width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;3. Load Data:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Step 1: Click the Get Data option in the Ribbon (as shown below), then pick your file type.&lt;/p&gt;

&lt;p&gt;Select your file; it will have the following extension(.xlsx file) if it's an Excel file and .csv if it's a CSV file. &lt;/p&gt;

&lt;p&gt;You will then see a pop-up window with a preview of your data &amp;gt;&amp;gt; click Load.&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.amazonaws.com%2Fuploads%2Farticles%2Fn8oygjq34yvykpku26ha.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Fn8oygjq34yvykpku26ha.jpeg" alt="Power bI" width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SCHEMAS &amp;amp; DATA MODELLING IN POWER BI.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;What is Data Modelling?&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;This refers to the process of organizing and structuring data to create meaningful relationships between different tables, which allows efficient data analysis and visualization.&lt;/p&gt;

&lt;h3&gt;
  
  
  Major Concepts in Data Modelling:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Fact table:&lt;/em&gt;&lt;/strong&gt; A fact table is the central table in a star schema. It contains the quantitative data (facts) you want to analyze. These facts should be numerical and measurable.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tables can be imported &lt;em&gt;(static data)&lt;/em&gt; or connected to live data sources &lt;em&gt;(dynamic data)&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Relationships:&lt;/strong&gt; Relationships define how tables interact with one another in the model.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;They are established based on keys:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Key:&lt;/strong&gt; A unique identifier in one table.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Foreign Key:&lt;/strong&gt; A column in another table that references the primary key.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cardinality:&lt;/strong&gt; Refers to the nature of the relationship between tables:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;One-to-One (1:1):&lt;/em&gt; Each row in Table A matches exactly one row in Table B.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;One-to-Many (1:M):&lt;/em&gt; A single row in Table A matches multiple rows in Table B.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Many-to-Many (M:M):&lt;/em&gt; Multiple rows in Table A match multiple rows in Table B.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Dimensional table:&lt;/em&gt;&lt;/strong&gt;  This is a core data warehouse component in star/snowflake schemas that stores descriptive, textual attributes (e.g., product names, customer locations, time periods) for analyzing business metrics stored in fact tables. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Flat table;&lt;/em&gt;&lt;/strong&gt; This is one table that consolidates all data into one wide table, removing the need for relationships by denormalizing data into a single, spreadsheet-like structure. &lt;/p&gt;

&lt;h3&gt;
  
  
  Star Schema:
&lt;/h3&gt;

&lt;p&gt;This is a centralized data modeling technique with a central fact table containing numbers/measures, e.g., sales,  connected to surrounding dimension tables (providing context like product, customer), forming a star shape for faster, simpler analysis and reporting by logically grouping data.&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.amazonaws.com%2Fuploads%2Farticles%2Fjvx1hcrbrb0axr0d9qbr.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2Fjvx1hcrbrb0axr0d9qbr.jpg" alt="Star Schema" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features of a star schema:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A central fact table connects to dimension tables directly, forming a star shape.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simple to design and maintain, with denormalized, flat dimension tables.&lt;br&gt;
Generally faster for query execution due to fewer joins.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used and preferred for BI tools like Power BI and Tableau, and when fast read performance is the priority.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Disadvantage: Higher storage consumption and data redundancy.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A snowflake schema:
&lt;/h3&gt;

&lt;p&gt;Is a normalized data modeling technique for data warehouses where a central fact table connects to dimension tables, which are further broken down into sub-dimension tables to eliminate data redundancy.&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.amazonaws.com%2Fuploads%2Farticles%2Fgs2j28baw4jqzoucypav.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.amazonaws.com%2Fuploads%2Farticles%2Fgs2j28baw4jqzoucypav.png" alt="Snowflake" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features of  a snowflake schema:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A central fact table connects to normalized dimension tables, which are further broken down into sub-dimension tables, creating a snowflake-like structure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used for Higher complexity data modelling, requiring more normalization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Potentially slower due to the need for more {join} operations, &lt;br&gt;
Used in Complex systems with complex hierarchies, or when saving storage space is critical.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Disadvantages: Harder to navigate for ad-hoc reporting; increased complexity in updates.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Key Differences between Star schema and Snowflake schema:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Star Schemas&lt;/th&gt;
&lt;th&gt;Snowflake Schemas&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. Denormalized&lt;/td&gt;
&lt;td&gt;Denormalized&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Uses fewer Joins&lt;/td&gt;
&lt;td&gt;Uses more joins&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Uses more Storage space&lt;/td&gt;
&lt;td&gt;Uses less Storage space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Star is better for fast analysis&lt;/td&gt;
&lt;td&gt;Snowflake is better for data                           integrity&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  DATA MODELLING:
&lt;/h2&gt;

&lt;p&gt;We have learned all the necessary concepts in data modelling, so now let’s get to building our first model!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step 1: Loading Data into Power BI.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Import data from your preferred source (Excel, databases, web APIs, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step 1. (a) Clean and prepare your data with Use Power Query:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Load Power Query by clicking 'Transform data' under the table view:&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.amazonaws.com%2Fuploads%2Farticles%2Fasiklw0vr4t6un4z2hu2.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.amazonaws.com%2Fuploads%2Farticles%2Fasiklw0vr4t6un4z2hu2.png" alt="Power Query" width="800" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Transform your data, ensuring it has no blanks, duplicates, or wrongly formatted data types.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step 2: Create a cardinal relationship between your tables:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the Model View in the Power BI Desktop ribbon.&lt;/li&gt;
&lt;li&gt;Drag and drop fields to connect tables, or use the Manage Relationships feature.&lt;/li&gt;
&lt;li&gt;Define the type of relationship (e.g., 1:M) and enforce cross-filter direction.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step 3: Build the Model:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First, design a star schema by identifying fact and dimension tables.&lt;br&gt;
Then eliminate circular relationships (one table depending on another, hence creating loops).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use a surrogate key (unique ID) when natural keys are not consistent.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step 4: Add Calculated Columns and Measures:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create calculated columns or measures using DAX (Data Analysis Expressions) for derived insights.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step 5: Optimize the Model:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start by removing unnecessary columns and rows. Then Use Measures to summarize tables or aggregations to reduce data size.&lt;br&gt;
Define hierarchies (e.g., Year &amp;gt; Quarter &amp;gt; Month &amp;gt; Day) for faster analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Features of Power BI Data Modeling.&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Model View:&lt;br&gt;
This is a visual representation of the data model, showing tables and Relationships.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cross-Filter Direction:&lt;br&gt;
This determines how filters flow between related tables:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Single: Filters flow in one direction.&lt;/li&gt;
&lt;li&gt;Both: Filters flow in both directions, useful for complex models.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Role-Playing Dimensions:&lt;br&gt;
This is a single dimension table used in multiple roles (e.g., a Date table for OrderDate, Delivery Date).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Calculated Tables:&lt;br&gt;
• Tables created using DAX for specific analysis needs, such as grouping or summarizing data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hierarchies:&lt;br&gt;
• Organize columns into a hierarchy for easier drill-down analysis in reports.(e.g., Year &amp;gt; Month &amp;gt; Day).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;IMPORTANCE OF MODELLING IN DATA ANALYSIS:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Improves Query Performance: &lt;br&gt;
Well-modeled data (e.g., star schema) uses simple joins, allowing Business Intelligence tools to retrieve data faster and more efficiently than when dealing with unorganized data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Integrity &amp;amp; Consistency: &lt;br&gt;
By defining clear relationships(primary/foreign keys), the model prevents data anomalies, missing values, and redundancies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability: &lt;br&gt;
A well-developed model grows with the business. It allows for the addition of new data sources or increased data volumes without affecting the data or performance of the model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved Decision-Making: &lt;br&gt;
Accurate models allow Stakeholders to confidently make data-driven decisions without questioning the underlying data quality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Single Source of Truth: &lt;br&gt;
A good data model standardises definitions across the organisation (e.g., how "revenue" is calculated), ensuring that finance, sales, and marketing all report the same figures.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Without proper modeling, organizations often face slow, buggy reports, conflicting numbers, and high maintenance costs. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Reference: Data analysis made easy by Ezekiel Akele.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>firstyearincode</category>
      <category>businessintelligence</category>
    </item>
    <item>
      <title>A beginner's guide to MS Excel for Data Analytics.</title>
      <dc:creator>Juliet Kiplimo</dc:creator>
      <pubDate>Sun, 25 Jan 2026 19:22:53 +0000</pubDate>
      <link>https://dev.to/juliet_kiplimo_b9a825c95a/a-beginners-guide-to-ms-excel-for-data-analytics-j73</link>
      <guid>https://dev.to/juliet_kiplimo_b9a825c95a/a-beginners-guide-to-ms-excel-for-data-analytics-j73</guid>
      <description>&lt;p&gt;Ms Excel is a Powerful tool developed by Microsoft that enables you to store, organize, analyze, and visualize data. It is a spreadsheet that organizes data in Rows, Columns and cells.&lt;/p&gt;

&lt;p&gt;It is a useful tool for data analytics that makes it easy to derive insights from large datasets.&lt;/p&gt;

&lt;p&gt;In this article, I will walk you through the different functions, formulas, charts, and Pivot tables and dashboards.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Below is an example of an Excel Interface:&lt;/strong&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fjk01t8c903vqr5bpgrye.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.amazonaws.com%2Fuploads%2Farticles%2Fjk01t8c903vqr5bpgrye.png" alt="Excel Interface" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Let's define a few terms
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Workbook&lt;/strong&gt;: Is a collection of spreadsheets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Worksheet/spreadsheets:&lt;/strong&gt; is a page or sheet in the Workbook where data can be entered and manipulated using functions and formulas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cell:&lt;/strong&gt; This is an Intersection between a row and a column where you can input data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dataset:&lt;/strong&gt; A collection of related data arranged in Rows and Columns stored in a workbook.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Range:&lt;/strong&gt; Is a collection of cells that can be used to perform formulas and functions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Chart&lt;/strong&gt;: Is a graphical visualisation tool that displays data, e.g., a linegraph or Piechart. It works by plotting data points on a graph.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dashboard:&lt;/strong&gt; Is a single page that displays all relevant charts and Key Insights at a glance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pivot charts:&lt;/strong&gt; These are summary tables extracted from a large dataset that help to derive useful insights.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Formulas and Functions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Formulas&lt;/em&gt;&lt;/strong&gt; are special equations that allow you to calculate values on a spreadsheet.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;All formulas must start with an equal sign (=).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Formulas contain the following basic math operators:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Addition: +  e.g A1+B1&lt;/li&gt;
&lt;li&gt;Subtraction: -  e.g A1-B1&lt;/li&gt;
&lt;li&gt;Multiplication: *  e.g A1*B1&lt;/li&gt;
&lt;li&gt;Division: / e.g A1/B1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Functions&lt;/em&gt;&lt;/strong&gt; are special inbuilt formulas that have been created by Excel to manipulate data on a spreadsheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&amp;gt; Examples of Functions include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IF()&lt;/strong&gt;: Is a logical function that will output data according to a specific test/condition. If the condition e.g =if(A1&amp;lt;10,"Low","High")&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AVERAGE()&lt;/strong&gt;: Is a function that calculates the average of a range of cells that contains a list of values. e.g =AVERAGE(A1:A10)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SUMIF()&lt;/strong&gt;: Is a function that calculates the totals of a specific product and outputs them in a specified column. e.g =sumif(A:A,"Pencils",B:B)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;COUNT()&lt;/strong&gt;: Is a function that counts the number of cells in a specific range of values. It helps to determine the size of a list of items.&lt;br&gt;
e.g = COUNT(A1:A50)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Data Validation &amp;amp; Conditional Formatting:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are tools that allow you to customize how your data appears in a spreadsheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Data Validation&lt;/em&gt;&lt;/strong&gt;: is an inbuilt feature that allows users to restrict the data that is entered into a cell. This ensures the data is accurate and consistent. Examples of data validation include: "Decimals", "Whole number" etc&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Conditional formatting&lt;/em&gt;&lt;/strong&gt;: Is an inbuilt feature that allows a user to apply a specific formatting criteria to a cell or range of cells.&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.amazonaws.com%2Fuploads%2Farticles%2F962lod4sy9qt3c1g17xl.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.amazonaws.com%2Fuploads%2Farticles%2F962lod4sy9qt3c1g17xl.png" alt="Conditional Formatting" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Filtering &amp;amp; Sorting:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filtering&lt;/strong&gt;: Is a tool found in the data tab that allows you to display data according to a specified Criteria.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sorting&lt;/strong&gt;: Is a tool also found in the data tab that allows you to arrange data in a specific order or criteria e.g sorting in ascending or descending order. &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.amazonaws.com%2Fuploads%2Farticles%2Fdct0to8jwp3bqd3nxqia.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.amazonaws.com%2Fuploads%2Farticles%2Fdct0to8jwp3bqd3nxqia.png" alt="Sort &amp;amp; Filter" width="700" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Data Preparation &amp;amp; Cleaning:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• Removing Duplicates: Using the Remove duplicates built-in tool to find and delete redundant records.&lt;/p&gt;

&lt;p&gt;• Text Transformation: Functions like TRIM remove extra spaces, formatting all data fields appropriately, using the Format cells option.&lt;/p&gt;

&lt;p&gt;• Standardization: Functions such as UPPER, LOWER, and PROPER fix inconsistent text formatting.&lt;/p&gt;

&lt;p&gt;There you go, you have learned the basics on how to manipulate your data on Ms Excel as a data analyst.&lt;/p&gt;

&lt;p&gt;Adios, until the next one.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>A Newbie's Guide to GIT(gitbash).</title>
      <dc:creator>Juliet Kiplimo</dc:creator>
      <pubDate>Sat, 17 Jan 2026 09:35:53 +0000</pubDate>
      <link>https://dev.to/juliet_kiplimo_b9a825c95a/a-newbies-guide-to-gitgitbash-1iph</link>
      <guid>https://dev.to/juliet_kiplimo_b9a825c95a/a-newbies-guide-to-gitgitbash-1iph</guid>
      <description>&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.amazonaws.com%2Fuploads%2Farticles%2F1q8m7t23bpz9rdx1iv6g.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.amazonaws.com%2Fuploads%2Farticles%2F1q8m7t23bpz9rdx1iv6g.png" alt="Git" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Are you a newbie on git like me?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Check out this article on how you can install and configure Git also known as &lt;em&gt;gitbash&lt;/em&gt; and connect it to your GitHub account on a Windows operating system, using commands and prompts.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Definitions:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Github&lt;/strong&gt; - This is a virtual control platform that allows you to create, store, manage, track, and share your code with other developers. It enables collaborations on projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Git/Gitbash&lt;/strong&gt; - This is a command-line version control interface that allows you to communicate with your GitHub account using prompts and commands. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Fun fact about git:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Git uses the SHA-1 (and increasingly SHA-256) cryptographic hashing algorithm to identify every commit. This ensures that the code cannot be altered or corrupted without detection.&lt;/em&gt;  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Commit&lt;/strong&gt; - Is a permanent record of your code at a specific point in time. A code checkpoint that can be secured using cryptography.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Now that you know the tools, let's get started!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  How to Install GitHub Locally:
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Step 1:&lt;/em&gt;&lt;br&gt;
Open your default browser and search &lt;em&gt;github&lt;/em&gt;, click the first link, and sign up. OR follow this link to &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Github and sign up&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 2:&lt;/em&gt;&lt;br&gt;
Create a Profile on &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Github and sign up&lt;/a&gt;&lt;br&gt;
Fill in all the necessary fields, e.g., profile picture, name, and Bio information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Congratulations! You have successfully created a GitHub account.&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  How to Install Git / Gitbash :
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Step 1:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Open your browser and search for Git. OR follow this Link &lt;a href="https://git-scm.com/install/windows" rel="noopener noreferrer"&gt;Git Install&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 2:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Select the Operating system you are installing git on, i.e., Windows/ Mac os / Linux, etc&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 3:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Click the hyperlink "click here to download" (as shown below)&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.amazonaws.com%2Fuploads%2Farticles%2Fc1wgl9w3iyl4pw9n03l5.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.amazonaws.com%2Fuploads%2Farticles%2Fc1wgl9w3iyl4pw9n03l5.png" alt="Git download" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 4:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Once the program has finished downloading on your machine,open and run the program.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Be sure to pick Visual Studio as your default code editor on git when going through the steps of installation&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Follow each step carefully as instructed until you successfully finish installing it.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  How to connect your Git to your Gitbash account using commands.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Follow the following steps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 1:&lt;/em&gt; Launch your git&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 2:&lt;/em&gt;  Use the commands listed below in the following order.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Command to check your git version&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git --version&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Command to configure your name and email&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git config --global user.name "enter your name"&lt;/code&gt;&lt;br&gt;
&lt;code&gt;git config --global user.email "enter your email"&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Please use the same name and email used to create your github account&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Command to check that your configurations are successful&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git config --list&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Command to generate an SSH key&lt;/em&gt;&lt;/strong&gt; ( This is your unique digital identity)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;ssh-keygen -t ed25519 -C "email"&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Command to make an agent for your sshkey&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;eval "$(agent-ssh -s)"&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Command to add the agent.&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;ssh-add ~/.ssh/id_ed25519&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Command to print or publish the agent&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;cat ~/.ssh/id_ed25519.pub&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Now let's connect gitbash to github&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Follow the path provided by git to where your key is stored &amp;gt;&amp;gt; Open it using Visual Studio and copy it to your clipboard&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open your github account &amp;gt;&amp;gt; Go to settings &amp;gt;&amp;gt; Got to SSH &amp;amp; GPG keys.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click add new SSH key &amp;gt;&amp;gt; Paste the key you had copied earlier in VS stduio.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Congratulations! you successfully connected your git and GitHub accounts&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command to verify connection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ssh -T git@github.com&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You should get a confirmation like shown below:&lt;/em&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fpq3vyizvp1ry51chzchn.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.amazonaws.com%2Fuploads%2Farticles%2Fpq3vyizvp1ry51chzchn.png" alt="Git" width="737" height="438"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;Now Let's learn a few more commands on git!&lt;/strong&gt;
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Version Control on git
&lt;/h3&gt;

&lt;p&gt;Git is the most commonly used software for version control because of the following features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It takes a snapshot of every commit in the entire project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It provides an audit trail of all changes made to the code, who made the changes, what was changed in the code, and the date and time it was changed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It can restore any version of the project because it keeps a permanent, unaltered record of every commit made in the entire project.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  2. Push and Pull code on git.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pushing&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;pulling&lt;/em&gt;&lt;/strong&gt; are terms used to refer to the communication between your local machine and a remote server repository where code is stored (github in this case). &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pushing&lt;/strong&gt; - is using a specific command or an inbuilt graphical interface tool, like in &lt;a href="https://visualstudio.microsoft.com/" rel="noopener noreferrer"&gt;Visual Studio&lt;/a&gt;, to send your commits/code to a shared repository (like on GitHub) where other developers can see and interact with it. Can be referred to as &lt;em&gt;upload&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;An example of a command to push code&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pulling&lt;/strong&gt; - is using a specific command or inbuilt GUI tool to retrieve specific changes made from a remote repository and downloads and merges them into your code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;An example of a command to pull code&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git pull --rebase

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Tracking code on git.
&lt;/h3&gt;

&lt;p&gt;Tracking code on git is monitoring any unsaved modifications and the history of any permanent changes that have been made to the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Below are a few commands to track any changes in your work directory.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;To check the project's current overall status&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;To view exact code changes&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git diff&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;To check the changes waiting to be committed (staged)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git diff --staged&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;To check full history or logs&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;git log&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;For a condensed view of your history&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git log --oneline&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;For history of a specific file&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git log --[filename]&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;To show a detailed view of all your commits&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git show  --[commit-hash]&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Thank you for reading my article to the end !!
&lt;/h3&gt;

&lt;p&gt;I hope you find it informative and educational. Please comment and let me know what you think about my article!!&lt;/p&gt;

&lt;p&gt;Adios, until the next one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Signed&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Jules.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>gitlab</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
