<?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: Benta Okoth</title>
    <description>The latest articles on DEV Community by Benta Okoth (@benta_okoth_6e268588e4d6e).</description>
    <link>https://dev.to/benta_okoth_6e268588e4d6e</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%2F3709624%2Fb1342c38-6888-4acd-b8a4-b551b3792a0d.png</url>
      <title>DEV Community: Benta Okoth</title>
      <link>https://dev.to/benta_okoth_6e268588e4d6e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/benta_okoth_6e268588e4d6e"/>
    <language>en</language>
    <item>
      <title>Connecting Power BI to a SQL database</title>
      <dc:creator>Benta Okoth</dc:creator>
      <pubDate>Sat, 07 Mar 2026 09:41:55 +0000</pubDate>
      <link>https://dev.to/benta_okoth_6e268588e4d6e/connecting-power-bi-to-a-sql-database-p5m</link>
      <guid>https://dev.to/benta_okoth_6e268588e4d6e/connecting-power-bi-to-a-sql-database-p5m</guid>
      <description>&lt;p&gt;&lt;strong&gt;Power BI&lt;/strong&gt; - Is a complete reporting solution that offers data preparation, data visualization, distribution and management through development tools and an online platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  Power BI for Data Analysis and Business Intelligence
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Helps track key performance indicators (KPIs). &lt;/li&gt;
&lt;li&gt;Monitor business operations. &lt;/li&gt;
&lt;li&gt;Identify trends.&lt;/li&gt;
&lt;li&gt;Generate reports that help management make strategic decisions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;## Get Data In Power BI&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Get Data tab on the Power BI desktop helps use load data from various sources to our Power BI for the data visualization and report.&lt;/li&gt;
&lt;li&gt;The various data sources are namely:&lt;/li&gt;
&lt;li&gt;(i)Flat File&lt;/li&gt;
&lt;li&gt;(ii) Relational data&lt;/li&gt;
&lt;li&gt;(iii) NoSQL database &lt;/li&gt;
&lt;li&gt;(iv) Online Service&lt;/li&gt;
&lt;li&gt;(v) Azure Analysis Service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Connecting Power BI to SQL Database&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We understand that the SQL database can be hosted on cloud or on premise.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;On-Premise Database&lt;/strong&gt; - is a database that is hosted on servers located inside a company’s physical infrastructure, such as their data center or office server room.&lt;br&gt;
Example: a company installs Microsoft SQL Server on a server inside their office network.&lt;br&gt;
&lt;strong&gt;Characteristics&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Stored on local company servers&lt;/li&gt;
&lt;li&gt;Managed by the internal IT team&lt;/li&gt;
&lt;li&gt;Requires physical hardware&lt;/li&gt;
&lt;li&gt;Accessible mainly through the company network&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Cloud-Based Database&lt;/strong&gt; - is hosted on remote servers managed by a cloud provider, and accessed via the internet.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
Azure SQL Database&lt;br&gt;
Amazon RDS&lt;br&gt;
Google Cloud SQL&lt;br&gt;
The infrastructure is maintained by the cloud provider.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Characteristics&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hosted in the cloud provider’s data centers&lt;/li&gt;
&lt;li&gt;Accessible through the internet&lt;/li&gt;
&lt;li&gt;Scalable on demand&lt;/li&gt;
&lt;li&gt;Maintenance handled by the provider&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Connecting Power BI to a Cloud SQL Database(Aiven PostgreSQL)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Steps :&lt;br&gt;
&lt;strong&gt;1. Obtain Connection Details from Aiven&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure you have signed in to Aiven console using the link &lt;a href="https://console.aiven.io/login" rel="noopener noreferrer"&gt;https://console.aiven.io/login&lt;/a&gt; Log in to the Aiven dashboard using your gmail.&lt;/li&gt;
&lt;li&gt;Select your PostgreSQL service.&lt;/li&gt;
&lt;li&gt;Navigate to the Overview or Connection Information section by clicking on the database to be connected.&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%2Ft2emn268t7kay497mbh4.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%2Ft2emn268t7kay497mbh4.png" alt=" " width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Download the SSL Certificate&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Cloud database services usually require encrypted connections for security. In Aiven, this encryption is enabled using SSL certificates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To download the certificate:&lt;br&gt;
In the Aiven dashboard, go to the Connection Information or Security section.&lt;br&gt;
Locate the CA Certificate (Certificate Authority certificate).&lt;br&gt;
Download the certificate file to your computer by clicking on the download arrow.&lt;/p&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%2F7i4mb42bp8yqz7tykfs7.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%2F7i4mb42bp8yqz7tykfs7.png" alt=" " width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This certificate will be used to verify the identity of the database server and encrypt the connection between Power BI and the database.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Connect Power BI to the PostgreSQL Database&lt;/strong&gt;&lt;br&gt;
After obtaining the connection details and SSL certificate, you can connect the database to Power BI.&lt;/p&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Power BI Desktop.&lt;/li&gt;
&lt;li&gt;Click Get Data.&lt;/li&gt;
&lt;li&gt;Select PostgreSQL database.&lt;/li&gt;
&lt;li&gt;Enter the following:&lt;/li&gt;
&lt;li&gt;Server: host:port then click ok&lt;/li&gt;
&lt;/ol&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%2Fp98vfu36y74jv6dksoxu.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%2Fp98vfu36y74jv6dksoxu.png" alt=" " width="800" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Database: your database name.&lt;/li&gt;
&lt;li&gt;Choose the connection mode (Import or DirectQuery).&lt;/li&gt;
&lt;li&gt;When prompted, enter:
Username
Password&lt;/li&gt;
&lt;/ol&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%2F6my6trajljtizxt761ns.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%2F6my6trajljtizxt761ns.png" alt=" " width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Connecting Power BI to a Local PostgreSQL Database&lt;/strong&gt;&lt;br&gt;
Step &lt;br&gt;
1: Open Power BI Desktop&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launch Power BI Desktop on your computer.&lt;/li&gt;
&lt;li&gt;Go to the Home tab.&lt;/li&gt;
&lt;li&gt;Click Get Data then choose PostgreSQL db.&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%2Fhky70uduiuue3kn5x34u.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%2Fhky70uduiuue3kn5x34u.png" alt=" " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Enter the Server Name&lt;br&gt;
A connection window will appear asking for the server details.&lt;br&gt;
In the Server field, enter:&lt;br&gt;
localhost&lt;br&gt;
or&lt;br&gt;
localhost:5432&lt;br&gt;
Explanation:&lt;br&gt;
localhost means the database is running on your local machine.&lt;br&gt;
5432 is the default port used by PostgreSQL.&lt;/p&gt;

&lt;p&gt;Step 4: Enter the Database Name&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Database field:&lt;/li&gt;
&lt;li&gt;Type the name of the database you want to connect to.&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%2F2onzm3j9m4z6ekq17bq4.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%2F2onzm3j9m4z6ekq17bq4.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you leave this field blank, Power BI will display all available databases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 5: Choose Data Connectivity Mode&lt;br&gt;
Power BI will ask how you want to access the data.&lt;br&gt;
You can choose:&lt;br&gt;
Import Mode&lt;br&gt;
Data is copied into Power BI.&lt;br&gt;
Faster for reporting.&lt;br&gt;
DirectQuery&lt;br&gt;
Queries run directly on the PostgreSQL database.&lt;br&gt;
Shows real-time data.&lt;br&gt;
For most local analysis, Import Mode is commonly used.&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%2Fd10seiu02x8h3ywap00f.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%2Fd10seiu02x8h3ywap00f.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 6: Provide Database Credentials&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Power BI will then request authentication details.&lt;/li&gt;
&lt;li&gt;Enter:
Username – your PostgreSQL user
Password – the password for that user
Then click Connect.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 7: Select Tables to Load&lt;br&gt;
Once the connection is successful, Power BI opens the Navigator window.&lt;br&gt;
Here you will see:&lt;br&gt;
All tables&lt;br&gt;
Views&lt;br&gt;
Database schemas&lt;br&gt;
Steps:&lt;br&gt;
Select the tables you want to analyze.&lt;br&gt;
You can preview the data on the right side.&lt;br&gt;
Click Load to import the tables into Power BI.&lt;br&gt;
Step 8: Data is Loaded into Power BI&lt;br&gt;
After clicking Load:&lt;br&gt;
Power BI imports the selected tables.&lt;/p&gt;

&lt;p&gt;The tables appear in the Fields panel on the right side.&lt;br&gt;
You can now start creating:&lt;br&gt;
charts&lt;br&gt;
dashboards&lt;br&gt;
reports&lt;br&gt;
data models&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Learning SQL JOIN and Window Functions</title>
      <dc:creator>Benta Okoth</dc:creator>
      <pubDate>Thu, 05 Mar 2026 20:29:26 +0000</pubDate>
      <link>https://dev.to/benta_okoth_6e268588e4d6e/learning-sql-join-and-window-functions-3n4a</link>
      <guid>https://dev.to/benta_okoth_6e268588e4d6e/learning-sql-join-and-window-functions-3n4a</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;SQL JOINS&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JOIN&lt;/strong&gt; clause is used to combine rows from two or more tables, based on a related column between them&lt;/li&gt;
&lt;li&gt;To use joins we need to have  a primary key and a foreign key&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Primary Key&lt;/strong&gt; - uniquely identifies each row in a table. It must contain unique values. Cannot contain NULL. Only one primary key per table (but it can be made of multiple columns – composite key)&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%2F6b01vlk3sq09kzt7v287.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%2F6b01vlk3sq09kzt7v287.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Foreign Key&lt;/strong&gt; is a column that references the Primary Key of another table. It creates a relationship between tables. Can contain duplicate values. Can sometimes contain NULL. Ensures referential integrity (you cannot reference a non-existing record)&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%2F7itn4opr3o2pxl6dlfo6.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%2F7itn4opr3o2pxl6dlfo6.png" alt=" " width="797" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We are going to use the two below tables to explain the concept of join.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;select * from employees  e;&lt;/code&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%2Ff9c8b4awujebf6gtpmpg.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%2Ff9c8b4awujebf6gtpmpg.png" alt=" " width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;select * from departments d ;&lt;/code&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%2F1ua4xrq3ti7psg3ea8qx.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%2F1ua4xrq3ti7psg3ea8qx.png" alt=" " width="672" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  There are different types of JOINs in SQL:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;(i). (INNER) JOIN&lt;/strong&gt;: Returns only rows that have &lt;strong&gt;&lt;em&gt;matching values&lt;/em&gt;&lt;/strong&gt; in both tables&lt;/p&gt;

&lt;p&gt;&lt;code&gt;select e.name, d.department_name&lt;br&gt;
from employees e&lt;br&gt;
inner join departments d on e.department_id = d.department_id;&lt;/code&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%2Fpjsuz0946pntum0e0g4p.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%2Fpjsuz0946pntum0e0g4p.png" alt=" " width="619" height="202"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(ii). LEFT (OUTER) JOIN&lt;/strong&gt;: Returns &lt;strong&gt;&lt;em&gt;all rows from the left table&lt;/em&gt;&lt;/strong&gt;, and only the matched rows from the right table&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example: all departments and only the employees with department             assigned to them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;select e.name, d.department_name&lt;br&gt;
 from departments d &lt;br&gt;
 left join  employees e on d.department_id = e.department_id;&lt;/code&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%2Fpegi4porz5z7o6bnm5kc.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%2Fpegi4porz5z7o6bnm5kc.png" alt=" " width="666" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(iii). RIGHT (OUTER) JOIN&lt;/strong&gt;: Returns &lt;strong&gt;&lt;em&gt;all rows from the right table&lt;/em&gt;&lt;/strong&gt;, and only the matched rows from the left table&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example: employees and all departments(Empty departments) The table that comes after the word right join&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;select e.name, d.department_name&lt;br&gt;
 from employees e&lt;br&gt;
 right join departments d on e.department_id = d.department_id;&lt;/code&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%2F319acwb88z2bmbzo6i9m.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%2F319acwb88z2bmbzo6i9m.png" alt=" " width="651" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(iv). FULL (OUTER) JOIN&lt;/strong&gt;: Returns &lt;strong&gt;&lt;em&gt;all rows&lt;/em&gt;&lt;/strong&gt; when there is a match in either the left or right table&lt;/p&gt;

&lt;p&gt;&lt;code&gt;select e.name, d.department_name &lt;br&gt;
from employees e&lt;br&gt;
full outer join departments d  on e.department_id=d.department_id;&lt;/code&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%2F3ypc36zclga26t3tbjz5.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%2F3ypc36zclga26t3tbjz5.png" alt=" " width="466" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(v). CROSS JOIN&lt;/strong&gt;: Returns &lt;strong&gt;&lt;em&gt;every combination&lt;/em&gt;&lt;/strong&gt; of rows from both tables&lt;br&gt;
-Example - Every employee with every project ie if one employee has 3 project we shall have the name repeated thrice and the projects will differ&lt;br&gt;
&lt;code&gt;select e.name, p.project_name&lt;br&gt;
from employees e&lt;br&gt;
cross join projects p;&lt;/code&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%2F2tu0px0rk9ey8djwu1yy.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%2F2tu0px0rk9ey8djwu1yy.png" alt=" " width="516" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(vi). SELF JOIN&lt;/strong&gt; :- Is a regular join, but the table is joined with itself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example -Show employees and their managers
&lt;code&gt;select e.name as employee, m.name as manager
from employees e
join employees m on e.manager_id = m.employee_id;&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%2Fp0puab80mpmn8jn3gu69.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%2Fp0puab80mpmn8jn3gu69.png" alt=" " width="451" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(vii). NATURAL JOIN&lt;/strong&gt; - it automatically joins all tables using columns that have the same names&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;department_id will be the unifying factor(all the rows and all the columns from both tables)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;select * &lt;br&gt;
from employees e &lt;br&gt;
natural join departments d ;&lt;/code&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%2F9i31q4axysgjgq06lqyn.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%2F9i31q4axysgjgq06lqyn.png" alt=" " width="800" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## WINDOW FUNCTIONS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A window function in SQL is a function that performs a calculation across a set of rows that are related to the current row, without collapsing those rows into a single result.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This is the key difference from GROUP BY.&lt;br&gt;
GROUP BY → combines rows and returns one row per group.&lt;br&gt;
Window functions → keep every row but add a calculated value based on other rows in the "window".&lt;/p&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%2Fke43qjj4exu6rlvpfoxf.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%2Fke43qjj4exu6rlvpfoxf.png" alt=" " width="800" height="276"&gt;&lt;/a&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%2F2xxnk0b9fbmc0dghe0zl.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%2F2xxnk0b9fbmc0dghe0zl.png" alt=" " width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#### Ranking window functions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a. The RANK() function&lt;/strong&gt; - The RANK() function assigns a rank to each row based on the order specified within the window. Rows with the same values receive the same rank, and the next rank is skipped.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;select title, price, rank() over (order by price desc) as price_rank&lt;br&gt;
from books;&lt;/code&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%2Fnwi8oii7tfiu97d71g1u.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%2Fnwi8oii7tfiu97d71g1u.png" alt=" " width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;b.The DENSE_RANK() function&lt;/strong&gt; - The DENSE_RANK() function operates similarly to the RANK() function except it does not skip any ranks even if rows have the same values.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;select title, price, dense_rank() over (order by price desc) as price_rank&lt;br&gt;
from books;&lt;/code&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%2Feiy4o9agdj9r00271y89.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%2Feiy4o9agdj9r00271y89.png" alt=" " width="757" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;c.The ROW_NUMBER() function&lt;/strong&gt; - The ROW_NUMBER() function assigns a unique sequential number to each row within a partition, regardless of the column values. It makes sure that no two rows can have the same row number within a division.&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%2Fi5qyrduhkqebmtxxu0sf.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%2Fi5qyrduhkqebmtxxu0sf.png" alt=" " width="750" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;d.The NTILE() function&lt;/strong&gt; - divides sorted partitions into n-number of equal groups. Each row in a partition is assigned a group number.&lt;br&gt;
&lt;code&gt;select c.first_name, c.last_name,&lt;br&gt;
sum(o.quantity) as total_quantity, &lt;br&gt;
ntile(3) over (order by sum(o.quantity) desc) as quantity_tile&lt;br&gt;
from orders o&lt;br&gt;
join customer c on o.customer_id = c.customer_id&lt;br&gt;
group by c.first_name, c.last_name;&lt;/code&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%2F04lb3c3ao6he0d35kmx9.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%2F04lb3c3ao6he0d35kmx9.png" alt=" " width="784" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## The Analytical Window Functions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The LEAD() function&lt;/strong&gt; - The LEAD(column, n) function allows access of a value within a column from the&lt;br&gt;
following nth-row relative to the current row. It is the counterpart of the LAG() function. The syntax for lead and lag are the same&lt;/p&gt;

&lt;p&gt;&lt;code&gt;select o.order_id, o.customer_id, o.quantity,&lt;br&gt;
lag(o.quantity) over ( order by o.order_id ) as next_quantity&lt;br&gt;
from orders o;&lt;/code&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%2F0w3dsso8tptnlg2tsn6f.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%2F0w3dsso8tptnlg2tsn6f.png" alt=" " width="794" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The LAST_VALUE() function&lt;/strong&gt;- The LAST_VALUE() function allows the retrieval of the value of a column from the last row&lt;br&gt;
within a window frame. Operates similar to FIRST_VALUE()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT
Start_date,
Department,
First_name,
LAST_VALUE(First_name) OVER (
ORDER BY Start_date) AS Last_employee
FROM
Employee
ORDER BY
Department;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The Aggregate Window Function&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT
    c.first_name,
    c.last_name,
    o.quantity,
    SUM(o.quantity) OVER (PARTITION BY c.customer_id) AS totalquant_
FROM
    orders o
INNER JOIN
    customer c ON o.customer_id = c.customer_id;
&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%2Fpqqx9w0ccy08rne5gq1u.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%2Fpqqx9w0ccy08rne5gq1u.png" alt=" " width="785" height="209"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;select o.customer_id, c.first_name, c.last_name, sum(o.quantity) as total_quantity,
avg(b.price) as avg_price,
sum(o.quantity) over (partition by o.customer_id) as total_order_quantity
from customer c 
join orders o on c.customer_id = o.customer_id
join books b on o.book_id = b.book_id
group by c.first_name, c.last_name, o.quantity, o.customer_id;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT
Department,
First_name,
Salary,
MIN(Salary) OVER (
PARTITION BY Department) AS Min_salary
FROM
Employee
ORDER BY
Department;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>beginners</category>
      <category>database</category>
      <category>sql</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Translating Messy Data, DAX, and Dashboards into Action Using Power BI</title>
      <dc:creator>Benta Okoth</dc:creator>
      <pubDate>Fri, 06 Feb 2026 17:42:50 +0000</pubDate>
      <link>https://dev.to/benta_okoth_6e268588e4d6e/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-3458</link>
      <guid>https://dev.to/benta_okoth_6e268588e4d6e/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-3458</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Power BI - Is a complete reporting solution that offers data preparation, data visualization, distribution and management through development tools and an online platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  There are Three Major Components of Power BI
&lt;/h2&gt;

&lt;p&gt;Power BI Desktop(desktop application application) - For creating semantic models and reports with visualization.&lt;br&gt;
Power BI Service(online platform) - Dashboards from published reports and distribute content with aps&lt;br&gt;
Power BI Mobile(cross-platform mobile app) - For on-the-go access to the PBI service content, designed for mobile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Analytics Mindset
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Analytic mindset encompasses using data to identify trends, ask relevant questions to inform decision making.&lt;/li&gt;
&lt;li&gt;Analytical mindset is more evidence -based rather than using assumptions or intuition.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Analytics Mindset Helps:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Asks why something is happening, not just what happened.&lt;/li&gt;
&lt;li&gt;Breaks down problems into measurable components.&lt;/li&gt;
&lt;li&gt;Looks for trends, patterns, and outliers in data.&lt;/li&gt;
&lt;li&gt;Uses data to make informed decisions and recommendations.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Flow of Power BI is :
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Connect to data with Power BI Desktop&lt;/li&gt;
&lt;li&gt;Transform data with Power Query Editor&lt;/li&gt;
&lt;li&gt;Model data with Power BI Desktop&lt;/li&gt;
&lt;li&gt;Create Visualization and reports with Power BI Desktop&lt;/li&gt;
&lt;li&gt;Publish Reports to Power BI Service&lt;/li&gt;
&lt;li&gt;Distribute and Manage reports in Power BI service.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Building Blocks of Power BI&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Semantic models&lt;/strong&gt; - consist of all the connected data, transformation, relationships and calculations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visualization&lt;/strong&gt;- when you create a visualization , you add it to the canvas for a report page.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Get Data In Power BI&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Steps :&lt;br&gt;
 Open Power BI Desktop&lt;br&gt;
 Connect to different data sources under Get Data&lt;br&gt;
 Preview source data with Power Query&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(i)Flat File&lt;/strong&gt;- We can get data from different flat files and then as well be able to change the data source.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open Power BI click on Get Data then under common data sources choose Excel Workbook or Text/csv.&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%2Fhbd6fsfo0hb2mdeeonfq.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%2Fhbd6fsfo0hb2mdeeonfq.png" alt=" " width="800" height="555"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(ii) Relational data&lt;/strong&gt;- We can as well get data from relational data sources&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get data -&amp;gt; Click on from SQL Server(enter servers and database).&lt;/li&gt;
&lt;li&gt;Data Connectivity mode &amp;gt; Import&lt;/li&gt;
&lt;li&gt;Advanced Options to type your SQL Query&lt;/li&gt;
&lt;li&gt;Change data source settings under Transform data
Power BI uses a view, when it retrieves data, it participates in query folding , a feature of Power Query.&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%2Fjlwdzr5912lswlahzb2p.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%2Fjlwdzr5912lswlahzb2p.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(iii) NoSQL database&lt;/strong&gt;  - You can get data from NoSQL database like Azure, Azure Cosmos db, data stored in JSON format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(iv) Online Service&lt;/strong&gt; - We can get data from online services eg SharePoint, OneDrive, Dynamic 365, Google Analytics then enter the URL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(v) Azure Analysis Service&lt;/strong&gt; - A fully managed PaaS. Its a similar approach as getting data from sql server. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;authenticate to the server&lt;/li&gt;
&lt;li&gt;pick the model you want to use&lt;/li&gt;
&lt;li&gt;select&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Power BI Storage Model
&lt;/h2&gt;

&lt;p&gt;We have three modes of storage:&lt;br&gt;
Import &lt;br&gt;
Direct Query &lt;br&gt;
Dual(composite)&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. Transform data with Power Query Editor&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Power Query Editor helps with data cleaning and profiling.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;table&lt;/code&gt; in a column represents that the table has relationship with other tables and can be used to join tables.&lt;/li&gt;
&lt;li&gt;At Power Query Editor helps profile data in PBI. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Profiling&lt;/strong&gt; data is about studying the naunces of the data : determining anomalies, examining and developing the underlying data structures and querying data statistics eg row counts, value distribution, min and max values, average.&lt;br&gt;
 under View -&amp;gt; Data Preview&lt;br&gt;
                   -&amp;gt; Check Column Quality&lt;br&gt;
                   -&amp;gt; Column Profile&lt;br&gt;
                   -&amp;gt; Column Distribution&lt;br&gt;
                   -&amp;gt; Value Distribution&lt;br&gt;
                   -&amp;gt; Column Statistics&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; When the &lt;em&gt;Distinct = Unique&lt;/em&gt; it means the column contains unique values and this helps create 1-1 relationship.&lt;/li&gt;
&lt;li&gt;Power Query Editor helps us with data cleaning, transformation and then load, that is,&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%2Fl9kd6tser9ybkfr0cxi8.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%2Fl9kd6tser9ybkfr0cxi8.png" alt=" " width="800" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(i) Unpivot column, pivot columns and transpose columns.&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%2Fx5frg6nzgv4l6emprd62.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%2Fx5frg6nzgv4l6emprd62.png" alt=" " width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(ii) Resolve inconsistencies, unexpected or null values, data quality issues.&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%2Fq9kjte0o681s4mpz1ook.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%2Fq9kjte0o681s4mpz1ook.png" alt=" " width="721" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(iii) Apply user-friendly value replacement.&lt;/p&gt;

&lt;p&gt;(iv) Profile data so you can learn more about a specific column before using it.&lt;/p&gt;

&lt;p&gt;(v) Evaluate and transform column data types.&lt;/p&gt;

&lt;p&gt;(vi) Apply data shape transformations to table structures.&lt;/p&gt;

&lt;p&gt;(vii) Combine queries.&lt;/p&gt;

&lt;p&gt;(viii) Apply user-friendly naming convention to columns and queries.&lt;/p&gt;

&lt;p&gt;(ix) Edit M code in the Advanced Editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Various Power BI Functions and their Categorization&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;DAX functions (Modeling &amp;amp; calculations)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Used for measures, calculated columns, and calculated tables.&lt;br&gt;
Common categories&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aggregation
&lt;code&gt;SUM(), AVERAGE(), COUNT(), DISTINCTCOUNT()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Filter / context
&lt;code&gt;CALCULATE(), FILTER(), ALL(), ALLEXCEPT()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Time intelligence
&lt;code&gt;DATEADD(), TOTALYTD(), SAMEPERIODLASTYEAR()&lt;/code&gt; , &lt;code&gt;DAY()&lt;/code&gt;, &lt;code&gt;MONTH()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Logical
&lt;code&gt;IF(), SWITCH(), AND(), OR()&lt;/code&gt;, NESTEDIFS&lt;/li&gt;
&lt;li&gt;Lookup / relationships
&lt;code&gt;RELATED(), LOOKUPVALUE(), USERELATIONSHIP()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Table functions
&lt;code&gt;VALUES(), SUMMARIZE(), ADDCOLUMNS()&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used when: you’re creating KPIs, ratios, YoY growth, rolling averages, etc&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%2Ff0px6t991j2dsyvaqmnd.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%2Ff0px6t991j2dsyvaqmnd.png" alt=" " width="800" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Power Query (M) functions (Data transformation)
Used in Transform Data before the model loads.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Common categories&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text
&lt;code&gt;Text.Upper, Text.Lower, Text.Trim, Text.Contains&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Date/Time
&lt;code&gt;Date.Year, Date.Month, Date.AddDays&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Number
&lt;code&gt;Number.Round, Number.Abs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Table
&lt;code&gt;Table.SelectRows, Table.AddColumn, Table.Merge&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;List
&lt;code&gt;List.Sum, List.Distinct&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Conditional logic
&lt;code&gt;if … then … else&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used when: cleaning data, shaping columns, merging tables, fixing formats.&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%2Ffv7bwz9ay37o4qbovy9u.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%2Ffv7bwz9ay37o4qbovy9u.png" alt=" " width="800" height="109"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Power BI visual-level “functions”
Not written as code, but still important.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Visual aggregations (Sum, Avg, Min, Max)&lt;/li&gt;
&lt;li&gt;Filters (Top N, Relative Date)&lt;/li&gt;
&lt;li&gt;Drill-down / drill-through&lt;/li&gt;
&lt;li&gt;Tooltips&lt;/li&gt;
&lt;li&gt;Conditional formatting&lt;/li&gt;
&lt;li&gt;Visual calculations (newer feature)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used when: shaping how data appears on the report.&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%2Fgikgedcr1a4949kpf39b.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%2Fgikgedcr1a4949kpf39b.png" alt=" " width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Joins and Relationships in Power BI&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Joins&lt;/strong&gt; - This is primarily achieved through Merging Queries in Power Query – Go Analytics Merge Queries in Power Query (Excel/Power BI) joins two tables based on common columns, similar to a SQL JOIN, to combine related data.&lt;br&gt;
Found in the Home tab, it offers options to merge into an existing query or as a new one. It supports various join types, including Inner, Left Outer, and Full Outer.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Relationships *&lt;/em&gt; - are the connections between tables that allow you to analyze data across multiple sources as if they were one. Think of them like bridges that link different datasets together so you can build meaningful reports and visuals.&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%2Fc6dqe3d0sg52kl3twkhv.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%2Fc6dqe3d0sg52kl3twkhv.png" alt=" " width="800" height="370"&gt;&lt;/a&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%2F492460gd7ati2ub28i0w.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%2F492460gd7ati2ub28i0w.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Data modeling concepts and best practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The data modelling process involves six steps:&lt;/li&gt;
&lt;li&gt;Identifying business entities&lt;/li&gt;
&lt;li&gt;Defining key properties&lt;/li&gt;
&lt;li&gt;Creating a draft ER model&lt;/li&gt;
&lt;li&gt;Identifying data attributes&lt;/li&gt;
&lt;li&gt;Mapping attributes to entities&lt;/li&gt;
&lt;li&gt;Finalizing and validating the data model&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Visualizations overview in Power BI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Power BI offers a wide variety of built-in visuals, each designed for specific scenarios and data types.&lt;/li&gt;
&lt;li&gt;Visuals in a report interact with each other through cross-filtering and cross-highlighting, creating a fully interactive and dynamic experience. You can also drill through to other pages or even other reports to explore related data in more detail.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Charts for comparison and trends
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Bar and column charts&lt;/strong&gt;
Bar and column charts are the standard for comparing specific values across different categories. Use column charts for time-based comparisons and bar charts when category names are long.&lt;/li&gt;
&lt;/ol&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%2Fg0pxxk101hfs4e9fwdbu.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%2Fg0pxxk101hfs4e9fwdbu.png" alt=" " width="800" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Line charts&lt;/strong&gt;
Line charts emphasize the overall shape of values over time, making them ideal for showing trends and patterns. They work best with continuous data along the X axis.&lt;/li&gt;
&lt;/ol&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%2Fjmdk20gig1aim1vzqy5o.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%2Fjmdk20gig1aim1vzqy5o.png" alt=" " width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Area charts&lt;/strong&gt;
Area charts are based on line charts with the area between the axis and line filled in. They emphasize the magnitude of change over time and can show cumulative totals when stacked.&lt;/li&gt;
&lt;/ol&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%2Ful1bbwrl45ku1ekj7u0i.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%2Ful1bbwrl45ku1ekj7u0i.png" alt=" " width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Combo charts&lt;/strong&gt;
Combo charts combine a column chart and a line chart into one visual, allowing you to compare multiple measures with different value ranges. They can have one or two Y axes.&lt;/li&gt;
&lt;/ol&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%2F20d1vk55ap4dha8izs64.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%2F20d1vk55ap4dha8izs64.png" alt=" " width="588" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ribbon charts&lt;/strong&gt;&lt;br&gt;
Ribbon charts show which category has the highest rank over time, with the highest value always displayed on top for each period. They're effective for visualizing rank changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Waterfall charts&lt;/strong&gt;&lt;br&gt;
Waterfall charts show a running total as values are added or subtracted. They're useful for understanding how positive and negative changes affect an initial value, such as tracking contributions to net income.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Charts for part-to-whole relationships
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pie and donut charts&lt;/strong&gt;
Pie and donut charts show the relationship of parts to a whole. Donut charts have a blank center that allows space for a label or icon. Use these charts when you have a small number of categories.&lt;/li&gt;
&lt;/ol&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%2Fltj5q5gg56lwbsr6451u.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%2Fltj5q5gg56lwbsr6451u.png" alt=" " width="699" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Treemaps&lt;/strong&gt;
Treemaps display hierarchical data as nested rectangles, with size representing value. They're excellent for showing large amounts of hierarchical data and the proportions between parts and the whole.&lt;/li&gt;
&lt;/ol&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%2F6p24ylqzl7purm70g1rs.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%2F6p24ylqzl7purm70g1rs.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Funnel charts&lt;/strong&gt;
Funnel charts visualize sequential processes with stages, where items flow from one stage to the next. They're commonly used for sales pipelines and conversion tracking.&lt;/li&gt;
&lt;/ol&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%2Fw3yqbd5ipgqcqj2qqldi.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%2Fw3yqbd5ipgqcqj2qqldi.png" alt=" " width="800" height="309"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Charts for distribution and relationships
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scatter, bubble, and dot plot charts&lt;/strong&gt;
Scatter charts display data points at the intersection of two numerical values, revealing correlations and clusters. Bubble charts add a third dimension through bubble size, while dot plots can use categorical data on the X axis.&lt;/li&gt;
&lt;/ol&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%2Ffdchzsox1sq2cljwn24l.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%2Ffdchzsox1sq2cljwn24l.png" alt=" " width="800" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tables and matrices&lt;/strong&gt;
These visuals display detailed data in rows and columns.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Tables&lt;/em&gt;&lt;br&gt;
Tables present related data in a grid of rows and columns. They're ideal when you need to see exact values and make quantitative comparisons across many values for a single category.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Matrix visuals&lt;/em&gt;&lt;br&gt;
Matrix visuals support stepped layouts and make it easier to display data across multiple dimensions. They automatically aggregate data and enable drilling down into hierarchies.&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%2Fbf9d1nhxxds76cobvk80.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%2Fbf9d1nhxxds76cobvk80.png" alt=" " width="800" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Map visualizations
&lt;/h2&gt;

&lt;p&gt;Map visuals help you display geographic and spatial data. Power BI offers several map types for different scenarios.&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%2Fus8ucvg09jp05kizz1yb.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%2Fus8ucvg09jp05kizz1yb.png" alt=" " width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cards or callouts, KPIs, and gauges
&lt;/h2&gt;

&lt;p&gt;These visuals help you highlight key values and track progress toward goals and key metrics.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Card visuals&lt;/strong&gt;
Card visuals display a single fact or data point prominently. The card visual supports both single-card and multi-card layouts, and can include images and detailed reference values within the visual. Use cards when a single number, such as total sales or market share, is the most important thing to track.&lt;/li&gt;
&lt;/ol&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%2Fe00qlxjj2q00y2mnag20.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%2Fe00qlxjj2q00y2mnag20.png" alt=" " width="592" height="125"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;KPI visuals&lt;/strong&gt;&lt;br&gt;
Key performance indicator (KPI) visuals communicate progress made toward a measurable goal. They're ideal for measuring progress and distance to a metric.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gauge charts&lt;/strong&gt;&lt;br&gt;
Radial gauge charts display a single value measuring progress toward a goal. The needle represents the target value, and shading shows progress. They're great for showing the health of a single measure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Goals visual&lt;/strong&gt;&lt;br&gt;
The goals visual displays metrics and scorecards that help teams track progress toward business objectives. You can set targets, track current values, and visualize status with color-coded indicators.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  AI-powered visuals
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;These visuals use artificial intelligence to help you explore and understand your data.
&lt;strong&gt;Decomposition tree&lt;/strong&gt;
Decomposition tree visuals let you visualize data across multiple dimensions. They automatically aggregate data and enable drilling down in any order, with AI helping identify the next dimension to explore.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key influencers&lt;/strong&gt;&lt;br&gt;
Key influencer charts display the major contributors to a selected result or value. They help you understand which factors influence a key metric.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Anomaly detection&lt;/strong&gt;&lt;br&gt;
Anomaly detection automatically finds anomalies in line chart data. It highlights unexpected spikes and dips, helping you identify outliers that need investigation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filtering visuals&lt;/strong&gt;&lt;br&gt;
Power BI provides multiple ways to filter data in your reports. All visuals can be filtered using the Filters pane, which lets you apply filters at the visual, page, or report level. For more direct interaction, slicers provide on-canvas filtering controls.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slicers&lt;/strong&gt;&lt;br&gt;
Slicers come in multiple formats including button, list, dropdown, and date range. They display commonly used filters on the report canvas for easier access.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other visuals
&lt;/h2&gt;

&lt;p&gt;Image visual&lt;br&gt;
Text box and shapes&lt;br&gt;
Buttons and navigators&lt;br&gt;
Paginated report visual&lt;br&gt;
Q&amp;amp;A visual&lt;br&gt;
R and Python visuals&lt;br&gt;
Power Apps visual&lt;br&gt;
Custom visuals&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing the right visual
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Your data type: Categorical, numerical, time-based, or geographic&lt;/li&gt;
&lt;li&gt;Your goal: Compare values, show trends, display relationships, or track progress&lt;/li&gt;
&lt;li&gt;Your audience: What level of detail do they need?&lt;/li&gt;
&lt;li&gt;Available space: Some visuals work better in smaller or larger areas&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Dashboard design and layout principles&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Consider your audience&lt;br&gt;
Tell a story on one screen&lt;br&gt;
Make use of full-screen mode&lt;br&gt;
Accent the most important information&lt;br&gt;
Place the most important information&lt;br&gt;
Use the right visualization for the 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%2Fcm8770vozppfnov8wytt.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%2Fcm8770vozppfnov8wytt.png" alt=" " width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  **Data storytelling and translating insights into action
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data storytelling is very similar to human storytelling but provides the added benefits of deeper insights and supporting evidence through graphs and charts. &lt;/li&gt;
&lt;li&gt;Through data storytelling, complicated information is simplified so that your audience can engage with your content and make critical decisions quicker and more confidently.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Making sure your data story is valuable
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Think about your theory&lt;/strong&gt; - What do you want to prove or disprove? What do you think the data will tell you?&lt;br&gt;
Collect data. Collate the data you’ll need to develop your story.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Define the purpose of your story&lt;/strong&gt;- Using the data you gathered, you should be able to write what the goal of your story is in a single sentence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think about what you want to say&lt;/strong&gt;- Outline everything from the intro to the conclusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ask questions. Were you right or wrong in your hypothesis&lt;/strong&gt;?- How do these answers shape the narrative of your data story?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a goal for your audience&lt;/strong&gt;- What actions would you like them to take after reading your story?&lt;/p&gt;

&lt;h2&gt;
  
  
  The key components of data storytelling
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use data as the foundation of your story&lt;/li&gt;
&lt;li&gt;Create visuals to make insights clear&lt;/li&gt;
&lt;li&gt;Craft a narrative that connects data and visuals&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>datascience</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Microsoft Power BI</title>
      <dc:creator>Benta Okoth</dc:creator>
      <pubDate>Mon, 02 Feb 2026 17:39:23 +0000</pubDate>
      <link>https://dev.to/benta_okoth_6e268588e4d6e/microsoft-power-bi-44gl</link>
      <guid>https://dev.to/benta_okoth_6e268588e4d6e/microsoft-power-bi-44gl</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Power BI&lt;/strong&gt; - Is a complete reporting solution that offers data preparation, data visualization, distribution and management through development tools and an online platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  There are Three Major Components of Power BI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Power BI Desktop&lt;/strong&gt;(desktop application application) - For creating semantic models and reports with visualization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Power BI Service&lt;/strong&gt;(online platform) - Dashboards from published reports and distribute content with aps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Power BI Mobile&lt;/strong&gt;(cross-platform mobile app) - For on-the-go access to the PBI service content, designed for mobile.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Flow of Power BI is :
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Connect to data with Power BI Desktop&lt;/li&gt;
&lt;li&gt;Transform data with Power Query Editor&lt;/li&gt;
&lt;li&gt;Model data with Power BI Desktop&lt;/li&gt;
&lt;li&gt;Create Visualization and reports with Power BI Desktop&lt;/li&gt;
&lt;li&gt;Publish Reports to Power BI Service&lt;/li&gt;
&lt;li&gt;Distribute and Manage reports in Power BI service.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Building Blocks of Power BI&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Semantic models&lt;/strong&gt; - consist of all the connected data, transformation, relationships and calculations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visualization&lt;/strong&gt;- when you create a visualization , you add it to the canvas for a report page.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Get Data In Power BI&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Steps :&lt;br&gt;
 Open Power BI Desktop&lt;br&gt;
 Connect to different data sources&lt;br&gt;
 Preview source data with Power Query&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(i)Flat File&lt;/strong&gt;- We can get data from different flat files and then as well be able to change the data source.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open Power BI click on Get Data then under common data sources choose Excel Workbook or Text/csv.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;(ii) Relational data&lt;/strong&gt;- We can as well get data from relational data sources&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get data -&amp;gt; Click on from SQL Server(enter servers and database).&lt;/li&gt;
&lt;li&gt;Data Connectivity mode &amp;gt; Import&lt;/li&gt;
&lt;li&gt;Advanced Options to type your SQL Query&lt;/li&gt;
&lt;li&gt;Change data source settings under Transform data
Power BI uses a view, when it retrieves data, it participates in query folding , a feature of Power Query.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;(iii) NoSQL database&lt;/strong&gt;  - You can get data from NoSQL database like Azure, Azure Cosmos db, data stored in JSON format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(iv) Online Service&lt;/strong&gt; - We can get data from online services eg SharePoint, OneDrive, Dynamic 365, Google Analytics then enter the URL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(v) Azure Analysis Service&lt;/strong&gt; - A fully managed PaaS. Its a similar approach as getting data from sql server. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;authenticate to the server&lt;/li&gt;
&lt;li&gt;pick the model you want to use&lt;/li&gt;
&lt;li&gt;select&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Power BI Storage Model
&lt;/h2&gt;

&lt;p&gt;We have three modes of storage:&lt;br&gt;
Import &lt;br&gt;
Direct Query &lt;br&gt;
Dual(composite) &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. Transform data with Power Query Editor&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Power Query helps with data cleaning and profiling.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;table&lt;/code&gt; in a column represents that the table has relationship with other tables and can be used to join tables.&lt;/li&gt;
&lt;li&gt;At Power Query Editor helps profile data in PBI. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Profiling&lt;/strong&gt; data is about studying the naunces of the data : determining anomalies, examining and developing the underlying data structures and querying data statistics eg row counts, value distribution, min and max values, average.&lt;br&gt;
 under View -&amp;gt; Data Preview&lt;br&gt;
                   -&amp;gt; Check Column Quality&lt;br&gt;
                   -&amp;gt; Column Profile&lt;br&gt;
                   -&amp;gt; Column Distribution&lt;br&gt;
                   -&amp;gt; Value Distribution&lt;br&gt;
                   -&amp;gt; Column Statistics&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; When the &lt;em&gt;Distinct = Unique&lt;/em&gt; it means the column contains unique values and this helps create 1-1 relationship.&lt;/li&gt;
&lt;li&gt;Power Query Editor helps us with data cleaning, transformation and then load, that is,
(i) Unpivot column, pivot columns and transpose columns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(ii) Resolve inconsistencies, unexpected or null values, data quality issues.&lt;/p&gt;

&lt;p&gt;(iii) Apply user-friendly value replacement.&lt;/p&gt;

&lt;p&gt;(iv) Profile data so you can learn more about a specific column before using it.&lt;/p&gt;

&lt;p&gt;(v) Evaluate and transform column data types.&lt;/p&gt;

&lt;p&gt;(vi) Apply data shape transformations to table structures.&lt;/p&gt;

&lt;p&gt;(vii) Combine queries.&lt;/p&gt;

&lt;p&gt;(viii) Apply user-friendly naming convention to columns and queries.&lt;/p&gt;

&lt;p&gt;(ix) Edit M code in the Advanced Editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Various Power BI Functions and their Categorization&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;DAX functions (Modeling &amp;amp; calculations)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Used for measures, calculated columns, and calculated tables.&lt;br&gt;
Common categories&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aggregation
&lt;code&gt;SUM(), AVERAGE(), COUNT(), DISTINCTCOUNT()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Filter / context
&lt;code&gt;CALCULATE(), FILTER(), ALL(), ALLEXCEPT()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Time intelligence
&lt;code&gt;DATEADD(), TOTALYTD(), SAMEPERIODLASTYEAR()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Logical
&lt;code&gt;IF(), SWITCH(), AND(), OR()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Lookup / relationships
&lt;code&gt;RELATED(), LOOKUPVALUE(), USERELATIONSHIP()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Table functions
&lt;code&gt;VALUES(), SUMMARIZE(), ADDCOLUMNS()&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used when: you’re creating KPIs, ratios, YoY growth, rolling averages, etc&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Power Query (M) functions (Data transformation)
Used in Transform Data before the model loads.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Common categories&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text
&lt;code&gt;Text.Upper, Text.Lower, Text.Trim, Text.Contains&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Date/Time
&lt;code&gt;Date.Year, Date.Month, Date.AddDays&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Number
&lt;code&gt;Number.Round, Number.Abs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Table
&lt;code&gt;Table.SelectRows, Table.AddColumn, Table.Merge&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;List
&lt;code&gt;List.Sum, List.Distinct&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Conditional logic
&lt;code&gt;if … then … else&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used when: cleaning data, shaping columns, merging tables, fixing formats.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Power BI visual-level “functions”
Not written as code, but still important.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Visual aggregations (Sum, Avg, Min, Max)&lt;/li&gt;
&lt;li&gt;Filters (Top N, Relative Date)&lt;/li&gt;
&lt;li&gt;Drill-down / drill-through&lt;/li&gt;
&lt;li&gt;Tooltips&lt;/li&gt;
&lt;li&gt;Conditional formatting&lt;/li&gt;
&lt;li&gt;Visual calculations (newer feature)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used when: shaping how data appears on the report.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Different Schemas In Power BI&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;schema&lt;/strong&gt; refers to the structure and organization of data within a data model. &lt;/li&gt;
&lt;li&gt;Schemas define how data is connected and related within the model, influencing the efficiency and performance of data queries and reports. &lt;/li&gt;
&lt;li&gt;Understanding schemas helps in designing best data models that support comprehensive analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Types of Schemas in Power BI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. STAR SCHEMA&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%2Fokicnaouocmn5o3qpj7h.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%2Fokicnaouocmn5o3qpj7h.png" alt=" " width="678" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt;: The star schema is a simple and commonly used schema in data warehousing. It consists of a central fact table surrounded by dimension tables, forming a star-like pattern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structure&lt;/strong&gt;: The central fact table contains quantitative data (e.g., sales), while the dimension tables hold descriptive attributes related to the facts (e.g. Employee, Date, Territory).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases&lt;/strong&gt;: Star schemas are ideal for straightforward reporting and querying. They are efficient for read-heavy operations, making them suitable for dashboards and summary reports.&lt;/p&gt;

&lt;p&gt;The star schema does not necessarily have to be in the shape of a star. Below is also a star schema and is a preferred arrangement for many experts as in this arrangement is easier to visualize filter propagation from dimension to fact tables.&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%2Fqz3rf2ukrtvv3e9ehb90.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%2Fqz3rf2ukrtvv3e9ehb90.png" alt=" " width="352" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. SNOWFLAKE SCHEMA&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%2Fvtv3xerx9615hdpzwl8y.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%2Fvtv3xerx9615hdpzwl8y.png" alt=" " width="708" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt;: The snowflake schema is a normalized version of the star schema. In this design, dimension tables are further divided into related tables, resulting in a more complex structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structure&lt;/strong&gt;: The normalization process eliminates redundancy by splitting dimension tables into multiple related tables. This results in a web-like structure, resembling a snowflake.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases&lt;/strong&gt;: Snowflake schemas are used in scenarios requiring detailed data models and efficient storage. They are beneficial when dealing with large datasets where data redundancy needs to be minimized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. GALAXIES SCHEMA(OR FACT CONSTELLATION SCHEMA)&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%2Fog99pizc0kxsvbrp775w.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%2Fog99pizc0kxsvbrp775w.png" alt=" " width="355" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt;: The galaxies schema, also known as the fact constellation schema, involves multiple fact tables that share dimension tables, creating a complex, interconnected data model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structure&lt;/strong&gt;: This schema consists of multiple fact tables linked to shared dimension tables, enabling the analysis of different business processes within a single model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases&lt;/strong&gt;: Galaxies schemas are suitable for large-scale enterprise environments where multiple related business processes need to be analyzed. They support complex queries and detailed reporting across various domains.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;How Schemas Impact Power BI Performance&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;a. Data Storage Efficiency&lt;/p&gt;

&lt;p&gt;b. Query Performance&lt;/p&gt;

&lt;p&gt;c. Data Refresh Performance&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Implementing Schemas in Power BI&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;a. Creating a Star Schema&lt;/strong&gt;&lt;br&gt;
Set Up Fact and Dimension Tables: &lt;em&gt;Identify and create the central fact table and surrounding dimension tables&lt;/em&gt;.&lt;br&gt;
Link Tables: &lt;em&gt;Establish relationships between the fact table and dimension tables using foreign keys.&lt;/em&gt;&lt;br&gt;
Optimize for Performance: &lt;em&gt;Index key columns and use efficient data types to enhance query performance.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;b. Implementing a Snowflake Schema&lt;/strong&gt;&lt;br&gt;
Normalize Dimension Tables: &lt;em&gt;Split dimension tables into related sub-tables to reduce redundancy.&lt;/em&gt;&lt;br&gt;
Create Relationships: &lt;em&gt;Define relationships between sub-tables and the main dimension tables, ensuring referential integrity&lt;/em&gt;.&lt;br&gt;
Optimize Storage: &lt;em&gt;Use appropriate storage and indexing strategies to manage complex joins efficiently.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;c. Setting Up a Galaxies Schema&lt;/strong&gt;&lt;br&gt;
Identify Fact Tables: &lt;em&gt;Determine the various fact tables needed for different business processes.&lt;/em&gt;&lt;br&gt;
Share Dimension Tables: &lt;em&gt;Create shared dimension tables to link multiple fact tables.&lt;/em&gt;&lt;br&gt;
Ensure Efficient Querying: &lt;em&gt;Design the schema to support complex queries and optimize performance through indexing and data partitioning.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>analyst</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Microsoft Excel in Data Analytics</title>
      <dc:creator>Benta Okoth</dc:creator>
      <pubDate>Sat, 24 Jan 2026 07:29:00 +0000</pubDate>
      <link>https://dev.to/benta_okoth_6e268588e4d6e/microsoft-excel-in-data-analytics-3dhk</link>
      <guid>https://dev.to/benta_okoth_6e268588e4d6e/microsoft-excel-in-data-analytics-3dhk</guid>
      <description>&lt;p&gt;&lt;strong&gt;Microsoft Excel&lt;/strong&gt; is a spreadsheet program from Microsoft that lets you organize, calculate, analyze, and visualize data using rows, columns, formulas, and charts. &lt;br&gt;
It’s widely used for everything from simple lists to complex financial mode&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features and Functions
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Data Organization&lt;/strong&gt;: Users can enter data into cells, which are organized by columns (letters) and rows (numbers).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calculations &amp;amp; Formulas&lt;/strong&gt;: It uses formulas and functions (e.g., SUM, VLOOKUP) to perform complex calculations and data manipulation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Visualization&lt;/strong&gt;: Excel includes tools to create charts, graphs, and pivot tables to visualize data trends and insights.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation&lt;/strong&gt;: Visual Basic for Applications (VBA) allows users to create macros to automate repetitive tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Analysis&lt;/strong&gt;: Features like PivotTables, sparklines, and conditional formatting help turn raw data into actionable information&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Excel is Commonly used for :
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Financial Modeling: Creating budgets, forecasts, and financial reports.&lt;/li&gt;
&lt;li&gt;Data Management: Sorting, filtering, and organizing large datasets.&lt;/li&gt;
&lt;li&gt;Reporting &amp;amp; Analytics: Analyzing data to drive business decision-making.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Excel Structure
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Excel data is arranged in Columns (vertical), Rows (horizontal) and
Cells (where a row and column meet). Highlighted in orange is a cell&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%2Fnunphws4wnodwz4ehtbs.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%2Fnunphws4wnodwz4ehtbs.png" alt=" " width="800" height="161"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;At the very top of the Excel window is the Ribbon. The Ribbon is a toolbar that organizes commands into tabs such as Home, Insert, Page Layout, Formulas, Data, Review, and View. &lt;/li&gt;
&lt;li&gt;Each tab contains groups of related operations — for example, the Home tab includes formatting tools, while the Insert tab provides options for charts, tables, and illustrations. &lt;/li&gt;
&lt;li&gt;The Ribbon makes it easy to find and use Excel’s features without having to memorize complex commands&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%2Fw4ot9pgasuxkvsef867r.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%2Fw4ot9pgasuxkvsef867r.png" alt=" " width="800" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Excel Data Types
&lt;/h3&gt;

&lt;p&gt;There are varies data types used in excel:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text (String)
&lt;/li&gt;
&lt;li&gt;Number
&lt;/li&gt;
&lt;li&gt;Date
&lt;/li&gt;
&lt;li&gt;Time &lt;/li&gt;
&lt;li&gt;Boolean (Logical)&lt;/li&gt;
&lt;li&gt;Percentage &lt;/li&gt;
&lt;li&gt;Currency&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Common Mathematical and Logical Operations
&lt;/h3&gt;

&lt;p&gt;These are used to calculate values, totals, averages, and numeric comparisons.&lt;/p&gt;

&lt;p&gt;a) &lt;strong&gt;Basic Arithmetic Operations&lt;/strong&gt;&lt;br&gt;
Excel uses standard math symbols.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Operation           Symbol   Example &lt;/li&gt;
&lt;li&gt;Addition          +  =A1+B1
&lt;/li&gt;
&lt;li&gt;Subtraction           -  =A1-B1
&lt;/li&gt;
&lt;li&gt;Multiplication    *  =A1*B1
&lt;/li&gt;
&lt;li&gt;Division          /  =A1/B1&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;b) &lt;strong&gt;Common Mathematical Functions&lt;/strong&gt;&lt;br&gt;
These are built-in Excel functions.&lt;/p&gt;

&lt;p&gt;Function    Purpose&lt;br&gt;
SUM()           Adds multiple values&lt;br&gt;
AVERAGE()   Finds the mean&lt;br&gt;
MAX()           Highest value&lt;br&gt;
MIN()           Lowest value&lt;br&gt;
ROUND()         Rounds a number&lt;br&gt;
ROUNDUP()   Rounds up&lt;br&gt;
ROUNDDOWN() Rounds down&lt;br&gt;
ABS()           Absolute value&lt;br&gt;
COUNT()         Counts numbers&lt;br&gt;
COUNTA()    Counts non-empty cells&lt;/p&gt;

&lt;p&gt;c) &lt;strong&gt;Logical Operations in Excel&lt;/strong&gt;&lt;br&gt;
 i. Comparison Operators&lt;br&gt;
Used to compare values.&lt;br&gt;
Operator    Meaning&lt;br&gt;
=           Equal to&lt;br&gt;
&amp;lt;&amp;gt;          Not equal&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      Greater than
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;           Less than&lt;br&gt;
=          Greater than or equal&lt;br&gt;
&amp;lt;=          Less than or equal&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ii. Logical Functions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used for conditional logic.
Function    Purpose
&lt;code&gt;IF()&lt;/code&gt;         Conditional result
&lt;code&gt;AND()&lt;/code&gt;            All conditions must be TRUE
&lt;code&gt;OR()&lt;/code&gt;         At least one condition TRUE
&lt;code&gt;NOT()&lt;/code&gt;            Reverses logical result&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Error-Handling Logical Functions&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Used to avoid Excel errors.
Function      and the     Purpose
&lt;code&gt;IFERROR()&lt;/code&gt;           Handles errors gracefully
&lt;code&gt;ISBLANK()&lt;/code&gt;           Checks empty cells
&lt;code&gt;ISNUMBER()&lt;/code&gt;          Checks numeric values
&lt;code&gt;ISTEXT()&lt;/code&gt;        Checks text
&lt;code&gt;ISERROR()&lt;/code&gt;           Detects errors&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Common Errors:
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Error          Meaning&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;#DIV/0!&lt;/code&gt;  Division by zero&lt;br&gt;
&lt;code&gt;#N/A&lt;/code&gt;         Value not found&lt;br&gt;
&lt;code&gt;#VALUE!&lt;/code&gt;  Wrong data type&lt;br&gt;
&lt;code&gt;#REF!&lt;/code&gt;            Invalid cell reference&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;CORE CAPABILITIES&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Data Preparation&lt;/strong&gt;&lt;br&gt;
Importing data from CSV, databases, and external sources.&lt;br&gt;
Cleaning datasets (removing duplicates, handling missing values).&lt;br&gt;
Validating and standardizing formats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Analysis&lt;/strong&gt;&lt;br&gt;
Functions like SUMIFS, VLOOKUP, INDEX-MATCH for calculations and lookups.&lt;br&gt;
Pivot Tables for summarizing and aggregating large datasets.&lt;br&gt;
What-If Analysis tools (Goal Seek, Scenario Manager) for forecasting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Visualization&lt;/strong&gt;&lt;br&gt;
Charts and graphs (bar, line, scatter, pie, combo).&lt;br&gt;
Conditional formatting to highlight trends and anomalies.&lt;br&gt;
Interactive dashboards using slicers and pivot charts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decision Support&lt;/strong&gt;&lt;br&gt;
Turning raw numbers into actionable insights.&lt;br&gt;
Tracking KPIs, forecasting sales, and evaluating performance.&lt;br&gt;
Supporting finance, marketing, operations, and research&lt;/p&gt;

&lt;h3&gt;
  
  
  Main Types of Lookups in Excel
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Vertical Lookup (VLOOKUP)&lt;/li&gt;
&lt;li&gt;Looks down a column.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When to use&lt;br&gt;
Data arranged vertically&lt;br&gt;
Lookup value is in the first column&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Horizontal Lookup (HLOOKUP)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Looks across a row.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Exact Match vs Approximate Match&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Exact Match&lt;/li&gt;
&lt;li&gt;Finds an exact value.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. DATA PREPARATION&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Data preparation is the process of cleaning, organizing, and transforming raw data into a usable format.&lt;/li&gt;
&lt;li&gt;It ensures accuracy, consistency, and reliability, making analysis faster and insights more meaningful.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Data Cleaning
&lt;/h4&gt;

&lt;p&gt;This can be achieved by creating a staging table of data you are working on then on a separate sheet and name it &lt;em&gt;staging&lt;/em&gt;.&lt;br&gt;
&lt;strong&gt;(i). Remove duplicates&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You start by &lt;strong&gt;Freezing the column headers&lt;/strong&gt; - &lt;em&gt;Go to the View Tab on the Ribbon then in the Window Group click Freeze Pane then Freeze Top Row&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Select the column with unique identifier for example CustomerID, OrderID. &lt;em&gt;Then Go to Data tab in the ribbon then in the Data Tools group, click Remove Duplicates, a dialog box will appear-choose the columns you want Excel to check for duplicates then click on Remove Duplicate then click on OK as below&lt;/em&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%2Fry2dsfxrkeuyfvouqlwy.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%2Fry2dsfxrkeuyfvouqlwy.png" alt=" " width="800" height="310"&gt;&lt;/a&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%2Fmkmsitmtbfnyxmk2xaxh.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%2Fmkmsitmtbfnyxmk2xaxh.png" alt=" " width="800" height="300"&gt;&lt;/a&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%2Fpxoxk0imny0zp7me86yj.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%2Fpxoxk0imny0zp7me86yj.png" alt=" " width="800" height="173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Work on column Data Types&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the column header that contains date then &lt;em&gt;right click and choose format cell and under category select date and choose the date type of your preference as below&lt;/em&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%2F62bxhsz04zko8tbhbiq2.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%2F62bxhsz04zko8tbhbiq2.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Select the column with numeric values then &lt;em&gt;right click and choose format cells and under category select number and choose the decimal places  of your preference&lt;/em&gt; and ensure the date place is uniform for a given column, do the same for the columns containing text.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For columns that are expressed as a percentage you can format them to percentage and choose the preferred number of decimal places.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can add Data Validation as well to certain columns. &lt;em&gt;Select the column then Data&amp;gt;&amp;gt; Data Validation dropdown &amp;gt;&amp;gt;Data Validation &amp;gt;&amp;gt; Under settings Allow choose the preferred eg List and then under source list the entries you want Then click OK&lt;/em&gt;.( a dropdown appears at that column) &lt;/p&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%2Fyrhvgkkdld4o5oe548ma.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%2Fyrhvgkkdld4o5oe548ma.png" alt=" " width="800" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Handling of Missing Values&lt;/strong&gt;&lt;br&gt;
You start by filtering the column to check if missing values do exist then proceed to insert a column beside it .&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If say a column like FName has missing data _Apply a filter to the city column to know the columns with unfilled cities then proceed to replace we say words likes unknown before you start your analysis&lt;/li&gt;
&lt;/ol&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%2Fqpoo52pt8bfyyk8d4wrs.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%2Fqpoo52pt8bfyyk8d4wrs.png" alt=" " width="800" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Perform Calculations&lt;/strong&gt;&lt;br&gt;
Performing calculations is one of Excel’s core functions. It allows users to quickly compute sums, averages, percentages, and more without manual work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How It Works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every calculation in Excel starts with a formula, which begins with =.&lt;/p&gt;

&lt;p&gt;You can use cell references instead of typing numbers, which means formulas automatically update when data changes.&lt;/p&gt;

&lt;p&gt;Examples&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Adding Numbers
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=A1 + B1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adds values in cells A1 and B1.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Summing a Range
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUM(A1:A10)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adds all numbers in cells A1 through A10.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Calculating Percentages
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=A1/B1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Converts a number into a fraction of another, which can be formatted as a percentage.&lt;br&gt;
Screenshot Suggestion: Show a small table with sample numbers and a formula in the formula bar, highlighting the result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analyze Trends&lt;/strong&gt;&lt;br&gt;
Excel allows users to identify patterns and trends in data over time. This is useful for spotting growth, declines, or seasonal patterns in sales, performance, or other metrics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How It Works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use functions like AVERAGE(), MAX(), and MIN() to summarize data.&lt;/p&gt;

&lt;p&gt;Use conditional formatting to highlight trends, such as increases or decreases.&lt;/p&gt;

&lt;p&gt;Use formulas like =A2-A1 to calculate changes over time.&lt;/p&gt;

&lt;p&gt;Examples&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Monthly Sales Change
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=B2-B1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Calculates the difference in sales between months.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Highlight Growth&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Select your data → Home → Conditional Formatting → Color Scales&lt;/p&gt;

&lt;p&gt;Excel colors cells based on value, making trends visible at a glance.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Average Performance
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=AVERAGE(B2:B13)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Calculates the average sales over a year.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create Visual Reports&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Excel allows you to turn raw data into visual reports that are easier to interpret and present.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How It Works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use charts and graphs to show relationships between data points.&lt;/p&gt;

&lt;p&gt;Use PivotTables to summarize large datasets.&lt;/p&gt;

&lt;p&gt;Add interactive elements like slicers to filter data dynamically.&lt;/p&gt;

&lt;p&gt;Examples&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Bar Chart for Sales Comparison&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Select data → Insert → Bar Chart&lt;/p&gt;

&lt;p&gt;Excel generates a visual comparing monthly sales or product performance.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Line Chart to Show Trends&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Select data → Insert → Line Chart&lt;/p&gt;

&lt;p&gt;Displays growth or decline over time clearly.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PivotTable Summary&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Select data → Insert → PivotTable&lt;/p&gt;

&lt;p&gt;Drag fields into Rows, Columns, and Values to summarize sales by region, product, or customer.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Git Essentials for Beginners</title>
      <dc:creator>Benta Okoth</dc:creator>
      <pubDate>Sat, 17 Jan 2026 18:41:00 +0000</pubDate>
      <link>https://dev.to/benta_okoth_6e268588e4d6e/git-essentials-for-beginners-ipo</link>
      <guid>https://dev.to/benta_okoth_6e268588e4d6e/git-essentials-for-beginners-ipo</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;This guide introduces beginners to the core concepts of Git, the leading version control system.&lt;br&gt;
You’ll learn what version control is, why it matters, and how to track file changes.&lt;br&gt;
Step‑by‑step, we’ll cover staging and committing work to build a clear project history.&lt;br&gt;
You’ll also see how to push code to GitHub and pull updates to stay in sync.&lt;br&gt;
By the end, you’ll master the everyday Git workflow: &lt;strong&gt;track → commit → push → pull&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Git Bash vs GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Git Bash&lt;/strong&gt; - A command-line tool on your computer used to run Git commands (clone, commit, push). It works locally, basically where you type commands.&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; - An online platform (website) used to store, share, and collaborate on Git repositories in the cloud. Basically where your code is stored and shared online&lt;/p&gt;

&lt;h2&gt;
  
  
  Importance of Git
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;em&gt;Version control&lt;/em&gt; – Tracks changes and allows rollback to earlier versions&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Cloud backup&lt;/em&gt; – Code is safely stored online&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Collaboration&lt;/em&gt; – Multiple people can work on the same project &lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Portfolio building&lt;/em&gt; – Showcases skills to employers&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Code review&lt;/em&gt; – Improves quality through pull requests and comments&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Industry standard&lt;/em&gt; – Widely used across tech and IT roles&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Git Bash Installation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to the Git website: &lt;a href="https://git-scm.com/install/windows" rel="noopener noreferrer"&gt;https://git-scm.com/install/windows&lt;/a&gt; and install the git bash&lt;/li&gt;
&lt;li&gt;Go to the search bar and search for git bash, to check if the installation is complete.&lt;/li&gt;
&lt;li&gt;Click on the git bash icon and the git command line will be opened.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Connecting Git Bash to a GitHub Account
&lt;/h2&gt;

&lt;p&gt;1.&lt;em&gt;&lt;strong&gt;Checking the installed Git Bash version using a command&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;git –version&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&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%2F9d9a3l1brwr0tusrjt61.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%2F9d9a3l1brwr0tusrjt61.png" alt=" " width="800" height="39"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.&lt;em&gt;&lt;strong&gt;Configure identity on git bash&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; we config name and email as below&lt;/li&gt;
&lt;li&gt; &lt;code&gt;git config --global user.name "name"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt; &lt;code&gt;git config --global user.email xxxx@gmail.com&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3.&lt;em&gt;&lt;strong&gt;Confirmation of the name and email by check the list&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
 &lt;code&gt;git config --global –list&lt;/code&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%2Faafwdagf8y1jxth8vz32.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%2Faafwdagf8y1jxth8vz32.png" alt=" " width="800" height="69"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.&lt;em&gt;&lt;strong&gt;Using SSH Key and How to Generate an SSH Key&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;- &amp;gt;&amp;gt; ssh-keygen -t ed25519 -C "&lt;a href="mailto:email@gmail.com"&gt;email@gmail.com&lt;/a&gt;"&lt;/li&gt;
&lt;li&gt;- &amp;gt;&amp;gt; Enter file in which to save the key (/c/Users/Lenovo/.ssh/id_ed25519):&lt;/li&gt;
&lt;li&gt;-(dont enter anything just press enter and then enter again, ssh key will be populated)&lt;/li&gt;
&lt;li&gt;We need an agent (the key holder) - this is what holds the key generated we use the command is&lt;/li&gt;
&lt;/ul&gt;

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


&lt;/blockquote&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%2Fuow6otvhe2ixs7fnn793.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%2Fuow6otvhe2ixs7fnn793.png" alt=" " width="800" height="57"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; eval (builtin command and its role is check and helps to push a text command ie        in python it’s the string)&lt;/li&gt;
&lt;li&gt; ssh-agent = a helper program that holds your keys in memory&lt;/li&gt;
&lt;li&gt; -s = output commands in a format the shell can use&lt;/li&gt;
&lt;li&gt; $(...) = “run this command first, and insert its output here”&lt;/li&gt;
&lt;li&gt; eval = “execute the text that comes out”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;5.&lt;em&gt;&lt;strong&gt;Add your SSH private key (id_ed25519) into the SSH authentication agent (ssh-agent)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This helps Git (or any other tool using SSH) to use it automatically without asking for your passphrase every time. The command is below :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;ssh-add ~/.ssh/id_ed25519&lt;/code&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%2Ft9rmpj1fxkmx6bb5tgm4.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%2Ft9rmpj1fxkmx6bb5tgm4.png" alt=" " width="800" height="57"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;These tells us the identity has been added as below
Identity added: /c/Users/Lenovo/.ssh/id_ed25519 (&lt;a href="mailto:email@gmail.com"&gt;email@gmail.com&lt;/a&gt;)"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;6.&lt;em&gt;&lt;strong&gt;When need to see our public key then use it to connect to github&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We need to print it using the command (when using the ssh) 
&lt;code&gt;cat ~/.ssh/id_ed25519.pub&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%2F5sirr702ipex7zbaqhsn.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%2F5sirr702ipex7zbaqhsn.png" alt=" " width="800" height="32"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.&lt;em&gt;&lt;strong&gt;Add the Key to GitHub and Test the Connection&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to GitHub on your browser &amp;gt; Settings &amp;gt; SSH and GPG Keys and then name
and then copy the key plus the email from git bash and add it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;ssh -T git@github.com&lt;/code&gt;&lt;br&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%2Fe7zgms4j84cvyv8mtwyn.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%2Fe7zgms4j84cvyv8mtwyn.png" alt=" " width="800" height="77"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GITBASH AND GITHUB WORKFLOW
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Create and Move to a Project Folder&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;You start by making a directory and get to the directory using the commands below&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;mkdir my-first-data-project&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd my-first-data-project&lt;/code&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%2Fhudr5ho85fkkl7tix9ek.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%2Fhudr5ho85fkkl7tix9ek.png" alt=" " width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.&lt;em&gt;&lt;strong&gt;Git Tracking/Initialize the Folder using the command&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git init&lt;/code&gt;&lt;br&gt;
(this helps turn your folder into git repository)&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%2Fwa97uaevosra79wvcdfn.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%2Fwa97uaevosra79wvcdfn.png" alt=" " width="800" height="65"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.&lt;em&gt;&lt;strong&gt;Create a New file in Folder created earlier on using the command&lt;/strong&gt;&lt;/em&gt; &lt;br&gt;
&lt;code&gt;touch Week1.html&lt;/code&gt; - creates an empty file&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%2Fl9vnwp8u50qz405vo8c4.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%2Fl9vnwp8u50qz405vo8c4.png" alt=" " width="800" height="50"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;echo "print python" &amp;gt; Week1.txt&lt;/code&gt; - This creates a file called Week1.txt with the text print python inside.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;nano readme.md&lt;/code&gt; or &amp;gt;&amp;gt; &lt;code&gt;vim script.js&lt;/code&gt; - This opens the file in a terminal-based editor. Save and exit when done.&lt;/p&gt;

&lt;p&gt;4.&lt;em&gt;&lt;strong&gt;Confirm the file exists using the command&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
  &lt;code&gt;ls&lt;/code&gt;&lt;br&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%2F8lrccz7c2u29smq44q96.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%2F8lrccz7c2u29smq44q96.png" alt=" " width="800" height="68"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.&lt;em&gt;&lt;strong&gt;File Tracking, Modifications and Changes Saving&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
We use the command &lt;/p&gt;

&lt;p&gt;&lt;code&gt;git add&lt;/code&gt; - to help save the changes (moves the changes to the staging area) done&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%2Fot4nrgerz7zpu2o15t74.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%2Fot4nrgerz7zpu2o15t74.png" alt=" " width="800" height="50"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git commit&lt;/code&gt; - to help actually creates the snapshot of your project history. Takes everything you staged with git add and saves it permanently in Git’s timeline, along with the message you write. Commit message are usually the words in quote after the -m which acts as a label helps to be able to identify what changed and at what time.&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%2Fdrypjjcuqai5hm744zq5.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%2Fdrypjjcuqai5hm744zq5.png" alt=" " width="800" height="81"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;git add &amp;gt; select changes to include&lt;br&gt;
git commit &amp;gt; save those changes into history&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;6.&lt;em&gt;&lt;strong&gt;Checking History of Snapshot&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
We use the command&lt;br&gt;
 &lt;code&gt;git log&lt;/code&gt;&lt;br&gt;
&lt;em&gt;Shows all commits in detail (author, date, commit message, commit ID) as below.&lt;br&gt;
Press q to quit the log view.&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%2Fpb1l07sq0qcm5iccxwwb.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%2Fpb1l07sq0qcm5iccxwwb.png" alt=" " width="800" height="133"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.&lt;em&gt;&lt;strong&gt;Publish your work to the repository / Upload your code to GitHub&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the github and create the repo with the exact name of the one created on gitbash ie my-first-data-project&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%2Ftebu41sejkhdz2353u2n.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%2Ftebu41sejkhdz2353u2n.png" alt=" " width="709" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Then ensuring we are in the folder on the git bash side &lt;/li&gt;
&lt;li&gt;Connect your local project to the github using the command&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git remote add origin https://github.com/your-username/my-first-python-project.git&lt;/code&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%2Fj67kayh9ee53hzuby3v9.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%2Fj67kayh9ee53hzuby3v9.png" alt=" " width="800" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Then Push your work using&lt;/em&gt;&lt;br&gt;
&lt;code&gt;git branch -M main&lt;/code&gt;&lt;br&gt;
&lt;code&gt;git push -u origin main&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Then going forward you will use&lt;/em&gt; &lt;br&gt;
&lt;code&gt;git push&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;8.&lt;em&gt;&lt;strong&gt;Get Changes from Others/Another Computer (Pull)&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;code&gt;git pull&lt;/code&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>datascience</category>
      <category>data</category>
      <category>brightdatachallenge</category>
    </item>
  </channel>
</rss>
