<?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>Forem: Mohamed</title>
    <description>The latest articles on Forem by Mohamed (@sirsona).</description>
    <link>https://forem.com/sirsona</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%2F3709625%2Fbb7eb001-2d5c-42e6-8435-7b804afcd4e6.png</url>
      <title>Forem: Mohamed</title>
      <link>https://forem.com/sirsona</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sirsona"/>
    <language>en</language>
    <item>
      <title>How to Connect Power BI to a PostgreSQL Database (Localhost and Aiven Cloud)</title>
      <dc:creator>Mohamed</dc:creator>
      <pubDate>Sat, 14 Mar 2026 15:59:42 +0000</pubDate>
      <link>https://forem.com/sirsona/how-to-connect-power-bi-to-a-postgresql-database-localhost-and-aiven-cloud-22j3</link>
      <guid>https://forem.com/sirsona/how-to-connect-power-bi-to-a-postgresql-database-localhost-and-aiven-cloud-22j3</guid>
      <description>&lt;p&gt;Power BI is a powerful business intelligence (BI) and data visualization tool&lt;br&gt;
developed by Microsoft. It allows organizations to analyze data, build&lt;br&gt;
interactive dashboards, and generate reports that help decision-makers understand&lt;br&gt;
trends, patterns, and business performance.&lt;/p&gt;

&lt;p&gt;In modern organizations, large volumes of operational and analytical data are&lt;br&gt;
stored in databases. Instead of manually exporting this data into spreadsheets,&lt;br&gt;
companies connect Power BI directly to databases, so reports can be updated&lt;br&gt;
automatically. This connection enables analysts to build dashboards that always&lt;br&gt;
reflect the latest data.&lt;/p&gt;

&lt;p&gt;One of the most widely used database systems for storing analytical data is&lt;br&gt;
PostgreSQL. PostgreSQL is an open-source relational database management system&lt;br&gt;
known for its reliability, scalability, and strong SQL support. Companies use SQL&lt;br&gt;
databases like PostgreSQL to store structured data such as sales, transactions,&lt;br&gt;
customer records, and inventory information. When Power BI connects to these&lt;br&gt;
databases, analysts can query and visualize the data efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting Power BI To A Local PostgreSQL Database
&lt;/h2&gt;

&lt;p&gt;To begin analyzing data stored in PostgreSQL, you first connect Power BI Desktop&lt;br&gt;
to the database.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Open Power BI Desktop
&lt;/h3&gt;

&lt;p&gt;Start by opening Power BI Desktop on your computer. The Home ribbon provides&lt;br&gt;
access to data connection tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Click Get Data
&lt;/h3&gt;

&lt;p&gt;On the Home ribbon, click Get Data. Power BI supports many data sources including&lt;br&gt;
Excel, CSV, cloud services, and databases. If PostgreSQL is not immediately&lt;br&gt;
visible, click More to see the full list of connectors. Type PostgreSQL in the search bar and Power BI will immediately filter the results.&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%2F01l8w1teg6tv0i563fxm.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%2F01l8w1teg6tv0i563fxm.png" alt="Get Data" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Choose PostgreSQL Database
&lt;/h3&gt;

&lt;p&gt;Select PostgreSQL database from the available connectors.&lt;/p&gt;

&lt;p&gt;Power BI will open a connection dialog where you enter database details&lt;/p&gt;

&lt;p&gt;In the dialog box enter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server: &lt;code&gt;localhost:5432&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Database: database name (e.g., &lt;code&gt;company&lt;/code&gt; )&lt;/li&gt;
&lt;li&gt;Data connectivity mode:

&lt;ul&gt;
&lt;li&gt;Import (load data into Power BI)&lt;/li&gt;
&lt;li&gt;DirectQuery (queries the database live)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Then click OK.&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%2F3c0p1qeswfp4antuaqbx.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%2F3c0p1qeswfp4antuaqbx.png" alt="Connect Server" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Provide Credentials
&lt;/h3&gt;

&lt;p&gt;Power BI will ask for authentication details.&lt;/p&gt;

&lt;p&gt;Enter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Username: PostgreSQL user&lt;/li&gt;
&lt;li&gt;Password: database password&lt;/li&gt;
&lt;li&gt;Authentication type: database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After entering credentials, click Connect.&lt;/p&gt;

&lt;h3&gt;
  
  
  Select Tables to Load
&lt;/h3&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%2F2r9rnt6yf318nbhrly0y.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%2F2r9rnt6yf318nbhrly0y.png" alt="Loading Table" width="800" height="657"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Navigator window appears showing all tables and views in the PostgreSQL&lt;br&gt;
database.&lt;/p&gt;

&lt;p&gt;For example you might select:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;customers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;products&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sales&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;inventory&lt;/code&gt;
You can preview each table and then click Load to import the data into Power BI.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Many companies store their databases in the cloud. One example is Aiven, which&lt;br&gt;
provides managed PostgreSQL services.&lt;/p&gt;

&lt;p&gt;Connecting Power BI to a cloud PostgreSQL instance is similar to connecting&lt;br&gt;
locally, but it requires additional connection details.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Obtain Connection Details from Aiven
&lt;/h3&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%2Fmq47yh73j1ozyagkhcje.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%2Fmq47yh73j1ozyagkhcje.png" alt="Aiven Dashboard" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the Aiven dashboard you will find:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Host (database server address)&lt;/li&gt;
&lt;li&gt;Port (usually 19534)&lt;/li&gt;
&lt;li&gt;Database name&lt;/li&gt;
&lt;li&gt;Username&lt;/li&gt;
&lt;li&gt;Password&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Download and Install the SSL Certificate
&lt;/h3&gt;

&lt;p&gt;Aiven requires SSL encryption for all PostgreSQL connections. Because of this,&lt;br&gt;
you must download the CA Certificate and install it on your machine before&lt;br&gt;
connecting Power BI to the database.&lt;/p&gt;

&lt;h4&gt;
  
  
  Download the CA Certificate
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Open your Aiven service dashboard.&lt;/li&gt;
&lt;li&gt;Navigate to the connection information section.&lt;/li&gt;
&lt;li&gt;Download the CA Certificate file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The certificate will usually download as a file named: &lt;code&gt;ca.pem&lt;/code&gt;.&lt;br&gt;
Windows expects to use the &lt;code&gt;.crt&lt;/code&gt; extension. To make the certificate compatible,&lt;br&gt;
rename the downloaded &lt;code&gt;ca.pem&lt;/code&gt; file to &lt;code&gt;ca.crt&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Install the Certificate in Windows
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Double click the &lt;code&gt;ca.crt&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The Certificate window will open.&lt;/li&gt;
&lt;li&gt;Click Install Certificate.&lt;/li&gt;
&lt;li&gt;Choose Local Machine.&lt;/li&gt;
&lt;li&gt;Select Place all certificate in the following store.&lt;/li&gt;
&lt;li&gt;Choose Trusted Root Certification Authorities.&lt;/li&gt;
&lt;li&gt;Finish the installation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Connect Using Power BI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Open Power BI Desktop.&lt;/li&gt;
&lt;li&gt;Click Get Data from Home tab.&lt;/li&gt;
&lt;li&gt;Use the search bar to search for PostgreSQL database.&lt;/li&gt;
&lt;li&gt;Select it and click Connect.&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%2Fg00j7985moxpzykbebzj.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%2Fg00j7985moxpzykbebzj.png" alt="Aiven Connection" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the connection window, enter the following details from the Aiven dashboard:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server: &lt;code&gt;pg_12345-user.aivencloud.com:19534&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Database name: &lt;code&gt;company&lt;/code&gt;
Click OK.&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%2Fb9o95nt4ldd00n58b9it.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%2Fb9o95nt4ldd00n58b9it.png" alt="Aiven Username" width="800" height="435"&gt;&lt;/a&gt;&lt;br&gt;
Power BI will then prompt you for authentication.&lt;/p&gt;

&lt;p&gt;Enter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Username&lt;/li&gt;
&lt;li&gt;Password&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and select database authentication, then click Connect.&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%2Fiy1noaemu8dr9msmg3z7.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%2Fiy1noaemu8dr9msmg3z7.png" alt="Aiven Loading Tables" width="800" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Because the CA Certificate was installed earlier, Windows already trusts the&lt;br&gt;
Aiven server, allowing Power BI to establish a secure SSL connection&lt;br&gt;
automatically.&lt;/p&gt;

&lt;p&gt;Once the connection succeeds, the Navigator window will appear showing the&lt;br&gt;
available tables in your database, ready for you to select and load.&lt;/p&gt;

</description>
      <category>postgres</category>
      <category>powerfuldevs</category>
      <category>database</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Understanding SQL Joins and Window Functions</title>
      <dc:creator>Mohamed</dc:creator>
      <pubDate>Sat, 07 Mar 2026 19:06:51 +0000</pubDate>
      <link>https://forem.com/sirsona/understanding-joins-and-window-functions-1a1m</link>
      <guid>https://forem.com/sirsona/understanding-joins-and-window-functions-1a1m</guid>
      <description>&lt;p&gt;You'll often find that the data you need is spread across multiple tables or&lt;br&gt;
requires complex calculations that simple &lt;code&gt;GROUP BY&lt;/code&gt; queries can't handle. Two&lt;br&gt;
of the most powerful tools in your SQL toolbox for solving these challenges are&lt;br&gt;
&lt;strong&gt;JOINS&lt;/strong&gt; and &lt;strong&gt;Window Functions&lt;/strong&gt;.&lt;br&gt;
While &lt;strong&gt;Joins&lt;/strong&gt; allow us to stitch together data from multiple tables, &lt;strong&gt;Window&lt;br&gt;
Functions&lt;/strong&gt; allow us to perform complex calculations across rows without losing&lt;br&gt;
granularity of our data.&lt;/p&gt;

&lt;p&gt;This article explains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What Joins are&lt;/li&gt;
&lt;li&gt;Types of Joins with examples&lt;/li&gt;
&lt;li&gt;What Window Functions are&lt;/li&gt;
&lt;li&gt;Why Window Functions are powerful&lt;/li&gt;
&lt;li&gt;Sample queries&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  SQL JOIN
&lt;/h2&gt;
&lt;h2&gt;
  
  
  What is a Join?
&lt;/h2&gt;

&lt;p&gt;A Join combines rows from two or more tables using a related column between&lt;br&gt;
them. In a normalized database, data is split into multiple tables to avoid&lt;br&gt;
redundancy. For example, you might have a &lt;code&gt;weather&lt;/code&gt; table with city names and a&lt;br&gt;
&lt;code&gt;cities&lt;/code&gt; table with detailed city locations. To get a complete picture, you need&lt;br&gt;
to &lt;strong&gt;join&lt;/strong&gt; these tables.&lt;/p&gt;
&lt;h3&gt;
  
  
  Why do we need Joins?
&lt;/h3&gt;

&lt;p&gt;In relational databases, data is usually split across multiple tables to reduce&lt;br&gt;
duplication and maintain consistency. This process is known as &lt;strong&gt;normalization&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Types Of Joins
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Inner Join
&lt;/h3&gt;

&lt;p&gt;This join returns only matching rows from both tables.&lt;br&gt;
If a row in one table has no corresponding row in the other, it is excluded&lt;br&gt;
from the results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;columns&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;table1&lt;/span&gt;
    &lt;span class="k"&gt;INNER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;table2&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;table1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;column&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;table2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;column&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;amount&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;customers&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;
    &lt;span class="k"&gt;INNER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Left Join
&lt;/h3&gt;

&lt;p&gt;This join returns all rows from the left table, plus matching rows from the&lt;br&gt;
right table. If no match exists, you get NULL values from the right table.&lt;br&gt;
&lt;strong&gt;Syntax&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;columns&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;table1&lt;/span&gt; &lt;span class="k"&gt;LEFT&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;table2&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;table1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;column&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;table2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;column&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;customers&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;
    &lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Right Join
&lt;/h3&gt;

&lt;p&gt;This join returns all rows from the right table, plus matching rows from the&lt;br&gt;
left table. This is the mirrors image of a &lt;code&gt;LEFT JOIN&lt;/code&gt;.&lt;br&gt;
&lt;strong&gt;Syntax&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;columns&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;table1&lt;/span&gt;
    &lt;span class="k"&gt;RIGHT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;table2&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;table1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;column&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;table2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;column&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;customers&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;
    &lt;span class="k"&gt;RIGHT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Full Join
&lt;/h3&gt;

&lt;p&gt;Full Join returns all rows from both tables.&lt;br&gt;
If rows from the two tables match based on the join condition they are combined&lt;br&gt;
into a single row. If no match found, the missing columns are filled with NULL&lt;br&gt;
values.&lt;br&gt;
&lt;strong&gt;Syntax&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;columns&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;table1&lt;/span&gt;
    &lt;span class="k"&gt;FULL&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;table2&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;table1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;column&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;table2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;column&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;customers&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;
    &lt;span class="k"&gt;FULL&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. Cross Join
&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;CROSS JOIN&lt;/code&gt; creates a Cartesian product. Every row from the first table paired&lt;br&gt;
with every row from the second table. No condition needed.&lt;br&gt;
&lt;strong&gt;Syntax&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;columns&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;table1&lt;/span&gt;
    &lt;span class="k"&gt;CROSS&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;table2&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;customers&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;
    &lt;span class="k"&gt;CROSS&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  WINDOW FUNCTIONS
&lt;/h2&gt;

&lt;p&gt;Window functions allow computations across related rows while preserving&lt;br&gt;
individual rows.&lt;br&gt;
A key difference between &lt;code&gt;GROUP BY&lt;/code&gt; and Window Functions is how results are&lt;br&gt;
returned.&lt;br&gt;
&lt;code&gt;GROUP BY&lt;/code&gt; collapses multiple rows into a single summary row.&lt;br&gt;
Window Functions performs a calculation across group of rows while returning&lt;br&gt;
each individual row.&lt;/p&gt;
&lt;h3&gt;
  
  
  Why Window Function Are Powerful
&lt;/h3&gt;

&lt;p&gt;Window functions are widely used in analytics queries because they allow you to&lt;br&gt;
perform complex calculations without losing row-level detail.&lt;/p&gt;

&lt;p&gt;General Syntax&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;window_function&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;partition_expression&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...]&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;sort_expression&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;ASC&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;...]&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;frame_clause&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Types of Window Functions
&lt;/h3&gt;

&lt;p&gt;Window functions are generally divided into three main categories.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Aggregate Window Functions&lt;/li&gt;
&lt;li&gt;Ranking Window Functions&lt;/li&gt;
&lt;li&gt;Value Window Functions&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  1. Aggregate Window Functions
&lt;/h4&gt;

&lt;p&gt;These functions perform aggregate across a window of rows.&lt;br&gt;
Common aggregate window functions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SUM()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AVG()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;COUNT()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MIN()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MAX()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;order_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;first_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;SUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;customer_total&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;customers&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Ranking Window Functions
&lt;/h4&gt;

&lt;p&gt;Ranking functions assign a rank or position to rows based on ordering.&lt;/p&gt;

&lt;p&gt;Common ranking functions:&lt;/p&gt;

&lt;p&gt;i. &lt;strong&gt;&lt;code&gt;ROW_NUMBER()&lt;/code&gt;&lt;/strong&gt; - assign a rank or position to rows based on ordering.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;employee_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROW_NUMBER&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;salary&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;row_number&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;employees&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ii. &lt;strong&gt;&lt;code&gt;RANK()&lt;/code&gt;&lt;/strong&gt; - assigns the same rank for ties but skips numbers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;employee_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;RANK&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;salary&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;salary_rank&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;employees&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;iii. &lt;strong&gt;&lt;code&gt;DENSE_RANK()&lt;/code&gt;&lt;/strong&gt; - similar to &lt;code&gt;RANK()&lt;/code&gt;, it assigns the same for ties but&lt;br&gt;
does not skip numbers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;employee_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;DENSE_RANK&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;salary&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;salary_rank&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;employees&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;iv. &lt;strong&gt;&lt;code&gt;NTILE()&lt;/code&gt;&lt;/strong&gt; - divides rows into equal buckets.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;employee_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;NTILE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;salary&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;salary_group&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;employees&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Value (Navigation) Window Functions
&lt;/h4&gt;

&lt;p&gt;These functions allow you to access values from other rows within the window.&lt;/p&gt;

&lt;p&gt;Common navigation functions:&lt;/p&gt;

&lt;p&gt;i. &lt;strong&gt;&lt;code&gt;LAG()&lt;/code&gt;&lt;/strong&gt; - Returns the value from the previous row.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;order_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;LAG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;order_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;previous_quantity&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ii. &lt;strong&gt;&lt;code&gt;LEAD()&lt;/code&gt;&lt;/strong&gt; - Returns the value from the next row.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;order_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;LEAD&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;order_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;next_quantity&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>sql</category>
      <category>postgres</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Translate Messy Data, DAX, and Dashboards into Action Using Power BI</title>
      <dc:creator>Mohamed</dc:creator>
      <pubDate>Mon, 09 Feb 2026 06:43:01 +0000</pubDate>
      <link>https://forem.com/sirsona/translate-messy-data-dax-and-dashboards-into-action-using-power-bi-33l9</link>
      <guid>https://forem.com/sirsona/translate-messy-data-dax-and-dashboards-into-action-using-power-bi-33l9</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Most data does not arrive in a neat, analysis-ready format. Analyst often work with spreadsheet full of missing values, inconsistent labels, duplicate records, and confusing date or currency format. Left untreated, this kind of messy data leads to inaccurate reports and poor business decisions. The real value of an analyst's work begins not with charts, but with making sense of this chaos.Power BI enables analyst to clean, model, and analyze imperfect data,transforming it into clear dashboards that support confident, data-driven decisions.&lt;/p&gt;

&lt;p&gt;This article explores how analysts use Power BI to translate messy data, DAX calculations, and dashboard into actionable insights.&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%2Fis4gga1v7jl8z3f0bu1g.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%2Fis4gga1v7jl8z3f0bu1g.png" alt="Power BI" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Power Query
&lt;/h2&gt;

&lt;p&gt;Power Query Editor is the first tool in the analyst arsenal. Before any analysis&lt;br&gt;
begins, data must first be loaded into Power Bi from various resources. These sources may include Excel files, CSVs, databases, cloud services, or enterprise systems. Power Bi connects to these sources and brings the raw data into Power Query, where preparation begins.&lt;/p&gt;

&lt;p&gt;Once the data is loaded, Power Query is used for data profiling cleaning, and transformation, such as removing errors, replacing null values, and reshaping tables.&lt;br&gt;
This step is critical. If the data foundation is wrong, every dashboard and decisions built on top of it will be misleading.&lt;/p&gt;

&lt;p&gt;Using Power Query, analyst:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remove duplicate and errors&lt;/li&gt;
&lt;li&gt;Standardize values (e.g "Ke","Kenya")&lt;/li&gt;
&lt;li&gt;Handle missing data logically&lt;/li&gt;
&lt;li&gt;Change data types for dates, numbers, and currencies
&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%2F2bcp6fsfwfvgcbpyr0mw.png" alt="Power Query Editor" width="800" height="318"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Modeling Data
&lt;/h2&gt;

&lt;p&gt;Data Modeling is the process of structuring data into tables and defining relationships between them in a way that support efficient analysis.&lt;br&gt;
Once data is cleaned, analyst structure it into a star schema.&lt;br&gt;
This structure allows meaningful relationships and accurate calculations across time period or region.&lt;br&gt;
A well-designed model ensures that DAX measures behave correctly and that insight can be trusted.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;FactSales table: contain transaction-level revenue, profit, discount, and quantity.&lt;/li&gt;
&lt;li&gt;DimProduct: product detail and categories&lt;/li&gt;
&lt;li&gt;DimDate: for time intelligence&lt;/li&gt;
&lt;li&gt;DimRegion: geographic hierachy&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Using DAX to Build Actionable Metric
&lt;/h2&gt;

&lt;p&gt;Raw data alone doesn't tell a story. DAX formulas turn it into measures that answer business questions.&lt;br&gt;
DAX allows decision-makers to explore scenerios and evaluate performance.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Total Revenue
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Total Revenue = Sum(FactSales[Revenue])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Gross Profit
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Gross Profit = Sum(FactSales[Revenue] - FactSales[Cost])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Margin
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Margin % = DIVIDE([Gross Profit], [Total Revenue],0)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Designing Dashboards
&lt;/h2&gt;

&lt;p&gt;A dashboard is more than charts. It's a storyboard for action.&lt;br&gt;
It's visual command center. It turns a clean data and smart calculations into a clear, interactive story that anyone can understand.&lt;/p&gt;

&lt;p&gt;Effective Power BI Dashboard:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highlights KPI first (Revenue, Profit, Margin)&lt;/li&gt;
&lt;li&gt;Use trends to show performance over time&lt;/li&gt;
&lt;li&gt;Rank top and bottom performers&lt;/li&gt;
&lt;li&gt;Include slicer/filters so users can explore by region, product , or
salesperson.&lt;/li&gt;
&lt;li&gt;Avoid clutter and focus attention on what needs action
&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%2Feyr3jxof01macvhzvefs.png" alt="Dashboard" width="800" height="465"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Turning Insights into Decisions
&lt;/h2&gt;

&lt;p&gt;The final step is action. Power BI insights influence decisions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adjusting discount policies when margin drop&lt;/li&gt;
&lt;li&gt;Identifying under performing regions or salespeople&lt;/li&gt;
&lt;li&gt;Improving delivery processes based on on-time metrics&lt;/li&gt;
&lt;li&gt;Planning scenarios under rising costs or changing demands&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Power BI is powerful not because it creates charts, but because it helps analysts translate complexity into clarity. By cleaning messy data , modeling it correctly, applying DAX logic, and designing purposeful dashboard, analysts turn raw numbers into real business actions.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>beginners</category>
      <category>powerfuldevs</category>
      <category>data</category>
    </item>
    <item>
      <title>Schema And Data Modelling in Power BI: A Comprehensive Guide</title>
      <dc:creator>Mohamed</dc:creator>
      <pubDate>Mon, 02 Feb 2026 05:07:14 +0000</pubDate>
      <link>https://forem.com/sirsona/schema-and-data-modelling-in-power-bi-a-comprehensive-guide-4md4</link>
      <guid>https://forem.com/sirsona/schema-and-data-modelling-in-power-bi-a-comprehensive-guide-4md4</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Power Bi is a powerful business intelligence tool used to analyze data and&lt;br&gt;
create interactive reports and dashboards. However, the quality, performance,&lt;br&gt;
and accuracy of Power Bi reports depend heavily on how the data is modeled.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Data Modelling
&lt;/h3&gt;

&lt;p&gt;Data modelling is the process of structuring data into tables and defining relationships between them in a way that supports efficient analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a Schema
&lt;/h3&gt;

&lt;p&gt;Schema refers to the organizational structure of your data model. Its the specific arrangement or pattern you choose to organize your data tables and their relationships.&lt;/p&gt;

&lt;h3&gt;
  
  
  Define the Analysis Goal
&lt;/h3&gt;

&lt;p&gt;Data modelling begins by identifying what needs to be analyzed.&lt;/p&gt;

&lt;p&gt;Typical questions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is being measured?&lt;/li&gt;
&lt;li&gt;How will result be compared&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Clear Goal guide the structure of the model&lt;/p&gt;

&lt;h3&gt;
  
  
  Create the Fact Table
&lt;/h3&gt;

&lt;p&gt;A fact table stores measurable data from business activities.&lt;/p&gt;

&lt;p&gt;A table is a fact table if it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contains numeric values&lt;/li&gt;
&lt;li&gt;Records transactions or events&lt;/li&gt;
&lt;li&gt;Grows continuously&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Sales transactions&lt;/li&gt;
&lt;li&gt;Orders&lt;/li&gt;
&lt;li&gt;Payments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Common fact table columns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SalesAccount&lt;/li&gt;
&lt;li&gt;Quantity&lt;/li&gt;
&lt;li&gt;OrderID&lt;/li&gt;
&lt;li&gt;ProductKey&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Create Dimension Tables
&lt;/h3&gt;

&lt;p&gt;Dimension tables provides meaning to the facts.&lt;/p&gt;

&lt;p&gt;They describe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who performed the action&lt;/li&gt;
&lt;li&gt;What is involved&lt;/li&gt;
&lt;li&gt;When it happened&lt;/li&gt;
&lt;li&gt;Where it occurred&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Customer&lt;/li&gt;
&lt;li&gt;Product&lt;/li&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Location&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dimension allows data to be filtered, grouped, and summarized.&lt;/p&gt;

&lt;h3&gt;
  
  
  Define Relationships
&lt;/h3&gt;

&lt;p&gt;Relationships link dimension tables to the fact tables.&lt;/p&gt;

&lt;h4&gt;
  
  
  Key Rules for Defining Relationships
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Relationships are usually one-to-many&lt;/li&gt;
&lt;li&gt;Dimension tables are on the one side&lt;/li&gt;
&lt;li&gt;Fact tables are on the many side&lt;/li&gt;
&lt;li&gt;Filter flows from dimension to fact&lt;/li&gt;
&lt;li&gt;Single-direction filtering is preferred&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Correct relationships ensure accurate results.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schema in Power Bi
&lt;/h3&gt;

&lt;p&gt;A schema refers to the way table are structured and related within a data model.Schema define how fact tables and dimension tables are organized to support analysis and reporting.&lt;/p&gt;

&lt;p&gt;Power Bi mainly uses two schema designs&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Star Schema&lt;/li&gt;
&lt;li&gt;Snowflake schema&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Star Schema
&lt;/h4&gt;

&lt;p&gt;A star schema is a data modelling design where a central fact table is directly connected to multiple dimension tables. The structure resembles a star.&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%2Fj09gmuuibtxyexwfnnkl.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%2Fj09gmuuibtxyexwfnnkl.png" alt="Star Schema" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Advantages of Star Schema
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Easy to understand&lt;/li&gt;
&lt;li&gt;Faster query performance&lt;/li&gt;
&lt;li&gt;Simplifies DAX (Data Analysis Expression) calculation&lt;/li&gt;
&lt;li&gt;Reduces ambiguity in relationships&lt;/li&gt;
&lt;li&gt;Recommended by Microsoft for Power Bi&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Disadvantages of Star Schema
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Uses more storage space&lt;/li&gt;
&lt;li&gt;Some data redundancy in dimension tables&lt;/li&gt;
&lt;li&gt;Less suitable for highly normalized data&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;FactSales&lt;/li&gt;
&lt;li&gt;DimCustomer&lt;/li&gt;
&lt;li&gt;DimProduct&lt;/li&gt;
&lt;li&gt;DimDate&lt;/li&gt;
&lt;li&gt;DimRegion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each Dimension connects directly to the fact table.&lt;/p&gt;

&lt;h4&gt;
  
  
  Snowflake Schema
&lt;/h4&gt;

&lt;p&gt;A snowflake schema is a more complex version of a star schema where dimension tables are normalized into multiple related 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%2Fjde16opc8my8txb1o7ku.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%2Fjde16opc8my8txb1o7ku.png" alt="Snowflake Schema" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Advantages of Snowflake Schema
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Reduces data redundancy&lt;/li&gt;
&lt;li&gt;Uses less storage space&lt;/li&gt;
&lt;li&gt;Suitable for very large dimension tables&lt;/li&gt;
&lt;li&gt;Better normalization of data&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Disadvantages of Snowflake Schema
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;More complex due to many joins&lt;/li&gt;
&lt;li&gt;Slower performance due to many joins&lt;/li&gt;
&lt;li&gt;Harder to write and maintain DAX (Data Analysis Expression)&lt;/li&gt;
&lt;li&gt;More difficult to users to understand&lt;/li&gt;
&lt;li&gt;Not ideal for most Power Bi reports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Data Modelling is the foundation of effective Power Bi reporting. Understanding schema, fact and dimension tables and relationships allows analyst to build models that are fast, accurate, easy to maintain.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>microsoft</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Introduction to Microsoft Excel for Data Analytics: A Beginner-Friendly Guide</title>
      <dc:creator>Mohamed</dc:creator>
      <pubDate>Sun, 25 Jan 2026 15:17:51 +0000</pubDate>
      <link>https://forem.com/sirsona/introduction-to-microsoft-excel-for-data-analytics-a-beginner-friendly-guide-179g</link>
      <guid>https://forem.com/sirsona/introduction-to-microsoft-excel-for-data-analytics-a-beginner-friendly-guide-179g</guid>
      <description>&lt;p&gt;Data is everywhere, but making sense of it is what truly matters. That’s where&lt;br&gt;
&lt;strong&gt;Microsoft Excel&lt;/strong&gt; comes in. It is one of the most accessible and powerful tools&lt;br&gt;
for anyone starting a journey in &lt;strong&gt;data analytics&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is Microsoft Excel?
&lt;/h2&gt;

&lt;p&gt;Microsoft Excel is a &lt;strong&gt;spreadsheet application&lt;/strong&gt; that allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store data in rows and columns&lt;/li&gt;
&lt;li&gt;Perform calculations&lt;/li&gt;
&lt;li&gt;Clean and organize data&lt;/li&gt;
&lt;li&gt;Analyze patterns and trends&lt;/li&gt;
&lt;li&gt;Create charts and summaries&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Understanding the Excel Interface
&lt;/h2&gt;

&lt;p&gt;Before analyzing data, you need to understand the basic layout of Excel.&lt;/p&gt;
&lt;h3&gt;
  
  
  Workbook and Worksheet
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Workbook&lt;/strong&gt; is the Excel file&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Worksheet (Sheet)&lt;/strong&gt; is the individual page inside the workbook&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A workbook can contain multiple sheets, which is useful for separating raw data,&lt;br&gt;
cleaned data, and analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rows, Columns, and Cells&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Columns&lt;/strong&gt; - Vertical (A, B, C ...)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rows&lt;/strong&gt; - Horizontal (1, 2, 3, ...)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cell&lt;/strong&gt; - The intersection of a row and a column (e.g., A1)
&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%2Fimy0yn0340vl7ctk5tuu.png" alt="Interface" width="800" height="518"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Types of Data in Excel
&lt;/h2&gt;

&lt;p&gt;Common data types include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Text&lt;/strong&gt; - names, categories (e.g., "Mohamed", "Sales")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Numbers&lt;/strong&gt; - Quantities, prices, salaries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Date &amp;amp; Time&lt;/strong&gt; - Transactions, timestamps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boolean&lt;/strong&gt; - TRUE or FALSE&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Entering and Formatting Data
&lt;/h2&gt;

&lt;p&gt;Clean data is the foundation of good analysis.&lt;/p&gt;

&lt;p&gt;Basic best practices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use one column per variable (e.g., Date, Product, Revenue)&lt;/li&gt;
&lt;li&gt;Avoid merged cells&lt;/li&gt;
&lt;li&gt;Keep headers clear and descriptive&lt;/li&gt;
&lt;li&gt;Remove empty rows within the dataset&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Formatting tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use bold for headers&lt;/li&gt;
&lt;li&gt;Apply number formats (currency, date, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Opening an Existing Excel File
&lt;/h3&gt;

&lt;p&gt;If your data is already in Excel format (&lt;code&gt;.xlsx&lt;/code&gt;), you can open it directly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File -&amp;gt; Open -&amp;gt; Select &lt;code&gt;.xlsx&lt;/code&gt; File&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the quickest option when working with previously saved datasets.&lt;/p&gt;
&lt;h3&gt;
  
  
  Import Data into Excel
&lt;/h3&gt;

&lt;p&gt;Data can be entered manually or imported from external sources such as CSV files.&lt;/p&gt;

&lt;p&gt;To import data:&lt;br&gt;
&lt;strong&gt;Data -&amp;gt; Get Data -&amp;gt; From Text/CSV&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This ensures that large datasets are loaded accurately.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 1: Data Cleaning - Prepare Your Dataset
&lt;/h2&gt;

&lt;p&gt;Most real-world data is messy. Before analysis, the data must be cleaned.&lt;/p&gt;
&lt;h3&gt;
  
  
  Removing Duplicate Records
&lt;/h3&gt;

&lt;p&gt;Duplicate rows can distort results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data -&amp;gt; Remove Duplicates&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This removes repeated entries based on selected 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%2F48rp3osju5mqgp5uftjn.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%2F48rp3osju5mqgp5uftjn.png" alt="Duplicate Button" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Cleaning Text with Functions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;TRIM()&lt;/code&gt; removes extra spaces&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;UPPER()&lt;/code&gt; and &lt;code&gt;LOWER()&lt;/code&gt; standardize text formatting&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Step 2: Sorting and Filtering Data
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Sorting
&lt;/h3&gt;

&lt;p&gt;Sorting arranges data in ascending or descending order.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data -&amp;gt; Sort A to Z&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Filtering
&lt;/h3&gt;

&lt;p&gt;Filtering allows you to focus on specific values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data -&amp;gt; Filter&lt;/strong&gt;&lt;br&gt;
This is useful when exploring a subset of large datasets.&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%2Fh0fa8yckxq78p6e9dqbb.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%2Fh0fa8yckxq78p6e9dqbb.png" alt="Filter Button" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 3: Essential Excel Formulas for Analysis
&lt;/h2&gt;

&lt;p&gt;All Excel formulas are used in the same way. Follow these steps whenever you&lt;br&gt;
want to apply a formula:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the cell where you want the result to appear&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;=&lt;/code&gt; followed by the formula name (for example: &lt;code&gt;SUM&lt;/code&gt;, &lt;code&gt;AVERAGE&lt;/code&gt;, &lt;code&gt;COUNTIF&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Open a bracket &lt;code&gt;(&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Select the range of cells or enter the required values&lt;/li&gt;
&lt;li&gt;Close the bracket &lt;code&gt;)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Press Enter&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  SUM and AVERAGE
&lt;/h3&gt;

&lt;p&gt;Used to calculate total and mean values:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  COUNTIF
&lt;/h3&gt;

&lt;p&gt;Used to count how many cells meet a specific condition.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=COUNTIF(C2:C50, "Completed")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  IF
&lt;/h3&gt;

&lt;p&gt;Used to make decisions based on a condition.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=IF(D2&amp;gt;100, "High", "Low")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allows you to categorize data based on conditions.&lt;/p&gt;

&lt;h3&gt;
  
  
  XLOOKUP
&lt;/h3&gt;

&lt;p&gt;Used to find information in one column and return a related value from another&lt;br&gt;
column.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=XLOOKUP(E2, A2:A100, B2:B100)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 4: PivotTables
&lt;/h2&gt;

&lt;p&gt;PivotTables allow you to summarize large datasets without writing formulas.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Select the dataset&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Insert -&amp;gt; PivotTable&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Drag fields into Rows, Columns, and Values&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;PivotTables are commonly used to calculate totals, averages, and counts by&lt;br&gt;
category.&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%2F6yxuwlzok805ea4gbn9h.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%2F6yxuwlzok805ea4gbn9h.png" alt="PivotTable" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Data Visualization with Charts
&lt;/h2&gt;

&lt;p&gt;Charts help communicate insights clearly.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Select your data&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Insert -&amp;gt; Charts&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Choose a suitable chart type (Column, Line, or Bar)&lt;/li&gt;
&lt;li&gt;Add titles and labels for clarity&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%2Fzlw1cm2vhagkpqf3uehl.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%2Fzlw1cm2vhagkpqf3uehl.png" alt="Chart" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Microsoft Excel is a powerful starting point for anyone interested in data analytics.&lt;br&gt;
With features such as data cleaning tools, formulas, PivotTables, and charts,&lt;br&gt;
Excel enables users to transform raw data into meaningful insights.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>beginners</category>
      <category>microsoft</category>
      <category>analytics</category>
    </item>
    <item>
      <title>#Beginner’s Guide to Git &amp; GitHub Using SSH Keys</title>
      <dc:creator>Mohamed</dc:creator>
      <pubDate>Sat, 17 Jan 2026 08:21:22 +0000</pubDate>
      <link>https://forem.com/sirsona/beginners-guide-to-git-github-using-ssh-keys-5e7n</link>
      <guid>https://forem.com/sirsona/beginners-guide-to-git-github-using-ssh-keys-5e7n</guid>
      <description>&lt;h2&gt;
  
  
  Learn Git basics for Beginners
&lt;/h2&gt;

&lt;p&gt;If you're new to coding, you've probably heard about Git and GitHub. They're essential tools for developers, but they can seem confusing at first. This guide will walk you through everything step by step.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Git
&lt;/h3&gt;

&lt;p&gt;Git is a version control system. Think of Git as a history recorder for your project.&lt;/p&gt;

&lt;p&gt;It helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track changes in your files&lt;/li&gt;
&lt;li&gt;Go back to previous versions&lt;/li&gt;
&lt;li&gt;Work with others without overwriting their code&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What is GitHub
&lt;/h3&gt;

&lt;p&gt;GitHub is an online platform where you store Git repositories.&lt;/p&gt;

&lt;p&gt;It allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Back up your code online&lt;/li&gt;
&lt;li&gt;Collaborate with other developers&lt;/li&gt;
&lt;li&gt;Share your project publicly or privately&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Installing Git Bash
&lt;/h2&gt;

&lt;h3&gt;
  
  
  For Windows Users:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Visit &lt;a href="https://git-scm.com" rel="noopener noreferrer"&gt;Git Bash&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download the Windows installer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the installer with these recommended settings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select "Use Git from Git Bash only "&lt;/li&gt;
&lt;li&gt;Choose "Use the OpenSSL library"&lt;/li&gt;
&lt;li&gt;Select "Checkout Windows-style, commit Unix-style line endings"&lt;/li&gt;
&lt;li&gt;Choose "Use MinTTY"&lt;/li&gt;
&lt;li&gt;Leave other options as default&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  For Mac Users:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Option 1: using Homebrew&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;git

&lt;span class="c"&gt;# Option 2: Download from &amp;lt;git-scm.com&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  For Linux Users:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
&lt;span class="c"&gt;# Ubuntu/Debian&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;git

&lt;span class="c"&gt;#Fedora&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf5 &lt;span class="nb"&gt;install &lt;/span&gt;git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: Connecting Git to Your GitHub Account
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Configure Your Identity
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"your name"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"your email"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Generate an SSH Key
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Generate a new SSH key&lt;/span&gt;
ssh-keygen &lt;span class="nt"&gt;-t&lt;/span&gt; ed25519 &lt;span class="nt"&gt;-C&lt;/span&gt; &lt;span class="s2"&gt;"your email"&lt;/span&gt;

&lt;span class="c"&gt;# Press Enter to accept default location&lt;/span&gt;

&lt;span class="c"&gt;# Copy the key to your clipboard&lt;/span&gt;

&lt;span class="c"&gt;# For Windows&lt;/span&gt;
C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\Y&lt;/span&gt;OUR_USERNAME&lt;span class="se"&gt;\.&lt;/span&gt;ssh&lt;span class="se"&gt;\i&lt;/span&gt;d_ed25519.pub

&lt;span class="c"&gt;# For Mac:&lt;/span&gt;
~/.ssh/id_ed25519.pub

&lt;span class="c"&gt;# For Linux:&lt;/span&gt;
~/.ssh/id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Add SSH Key to GitHub
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to your GitHub account&lt;/li&gt;
&lt;li&gt;Go to settings then click SSH and GPG keys&lt;/li&gt;
&lt;li&gt;Click "New SSH key"&lt;/li&gt;
&lt;li&gt;Paste your key and give it a descriptive name&lt;/li&gt;
&lt;li&gt;Click "Add SSH key"&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Test Your Connection
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh &lt;span class="nt"&gt;-T&lt;/span&gt; git@github.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see: "Hi username! You've successfully authenticated...."&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Git Commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Initialize a new repository
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create project folder&lt;/span&gt;
&lt;span class="nb"&gt;mkdir &lt;/span&gt;my-first-project

&lt;span class="c"&gt;# Navigate to your project folder&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;my-first-project

&lt;span class="c"&gt;# Initialize git tracking&lt;/span&gt;
git init

&lt;span class="c"&gt;# list all files and folders in the project directory&lt;/span&gt;
&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt;  &lt;span class="c"&gt;# you will find .git folder&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Git creates a hidden &lt;code&gt;.git&lt;/code&gt; folder to store history.&lt;/p&gt;

&lt;h4&gt;
  
  
  Open Project in VS Code
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Open VS Code&lt;/li&gt;
&lt;li&gt;File -&amp;gt; Open Folder&lt;/li&gt;
&lt;li&gt;Select my-first-project&lt;/li&gt;
&lt;li&gt;Click "Open"&lt;/li&gt;
&lt;li&gt;Click "New File" icon&lt;/li&gt;
&lt;li&gt;Name it "hello.py"&lt;/li&gt;
&lt;li&gt;Add this content
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# print Hello World in Python
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello World!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Check your repository status
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output shows untracked/modified files&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage Files
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Stage specific file&lt;/span&gt;
git add hello.py

&lt;span class="c"&gt;# Stage multiple files&lt;/span&gt;
git add hello.py README.md

&lt;span class="c"&gt;# Stage all changes&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Check what's staged&lt;/span&gt;
git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Commit Changes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# commit with descriptive message&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add initial Python script and documentation"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 4: Connect to GitHub and Push
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create Repository on GitHub
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to your GitHub account&lt;/li&gt;
&lt;li&gt;Click + -&amp;gt; New repository&lt;/li&gt;
&lt;li&gt;Name: my-first-project&lt;/li&gt;
&lt;li&gt;Description: "Learning Git basics"&lt;/li&gt;
&lt;li&gt;Click "Create repository"&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Connect Local to Remote
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Copy the SSH URL from GitHub&lt;/span&gt;
&lt;span class="c"&gt;# Example&lt;/span&gt;
git remote add origin git@github.com:yourusername/my-first-project.git

&lt;span class="c"&gt;# verify connection&lt;/span&gt;
git remote &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Push to GitHub
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# First push (sets upstream)&lt;/span&gt;
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main

&lt;span class="c"&gt;# Subsequent pushes&lt;/span&gt;
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What happens when you push
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Your local commits are uploaded to GitHub&lt;/li&gt;
&lt;li&gt;Others can now see and access your code&lt;/li&gt;
&lt;li&gt;Your work is backed up in the cloud&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 5: Pulling Code from GitHub
&lt;/h2&gt;

&lt;h3&gt;
  
  
  When to pull:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;When starting work on a project&lt;/li&gt;
&lt;li&gt;When teammates have made changes&lt;/li&gt;
&lt;li&gt;Before making your own changes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# basic pull&lt;/span&gt;
&lt;span class="c"&gt;# Go to the project directory&lt;/span&gt;
git pull

&lt;span class="c"&gt;# pull from specific branch&lt;/span&gt;
git pull origin feature-branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everyone makes mistakes with git at first. That's normal! The key is to start with simple workflows and gradually learn more advanced features.&lt;/p&gt;

&lt;p&gt;Git is a powerful tool that becomes intuitive with practice.&lt;/p&gt;

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