<?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: Ezekiel Kinyua</title>
    <description>The latest articles on DEV Community by Ezekiel Kinyua (@ezzy_kinyua).</description>
    <link>https://dev.to/ezzy_kinyua</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4071738%2Fc1107777-f7e8-4d73-963b-9cfca211621d.jpg</url>
      <title>DEV Community: Ezekiel Kinyua</title>
      <link>https://dev.to/ezzy_kinyua</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ezzy_kinyua"/>
    <language>en</language>
    <item>
      <title>Joins in SQL; A Deep Dive</title>
      <dc:creator>Ezekiel Kinyua</dc:creator>
      <pubDate>Sat, 17 Oct 2026 13:03:13 +0000</pubDate>
      <link>https://dev.to/ezzy_kinyua/joins-in-sql-a-deep-dive-18ma</link>
      <guid>https://dev.to/ezzy_kinyua/joins-in-sql-a-deep-dive-18ma</guid>
      <description>&lt;p&gt;In SQL, joins are operations used to combine rows from two or more tables based on a related column between them. Joins are essential in relational databases because they allow you to retrieve data that is spread across multiple tables and present it in a unified way. This is particularly useful in normalized databases where related data is stored in separate tables to reduce redundancy and improve data integrity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do we use Joins?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1.Data Normalization&lt;/strong&gt;: In relational databases, data is often divided into multiple tables to eliminate redundancy. Joins allow you to reassemble this data as needed.&lt;br&gt;
&lt;strong&gt;2.Complex Queries&lt;/strong&gt;: Joins enable complex queries that can extract meaningful insights from multiple related tables.&lt;br&gt;
&lt;strong&gt;3.Data Integrity&lt;/strong&gt;: By linking tables through joins, you maintain data integrity and consistency, ensuring that related data is accurate and synchronized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of SQL Joins&lt;/strong&gt;&lt;br&gt;
There are various types of SQL joins. Let’s explore some of the most widely used ones:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.INNER JOIN&lt;/strong&gt;&lt;br&gt;
An INNER JOIN is one of the most used joins in SQL. It returns only the rows that have matching values in both tables. If there is no match, the row is not included in the result set.&lt;br&gt;
The INNER JOIN essentially combines the data from two or more tables based on a related column, and it filters out rows that do not satisfy the join condition.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Query&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="n"&gt;common_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="n"&gt;common_column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;•&lt;strong&gt;table1&lt;/strong&gt; and &lt;strong&gt;table2&lt;/strong&gt; are the names of the tables you want to join.&lt;br&gt;
•&lt;strong&gt;common_column&lt;/strong&gt; is the column that exists in both tables and is used as the join condition.&lt;br&gt;
•&lt;strong&gt;columns&lt;/strong&gt; are the columns you want to select in the result set.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.LEFT JOIN&lt;/strong&gt;&lt;br&gt;
A LEFT JOIN, also referred to as a LEFT OUTER JOIN, is a type of SQL join where all rows from the left table (table1) are returned regardless of whether there is a match in the right table (table2). It includes the matching rows from the right table based on a related column specified in the ON clause of the LEFT JOIN statement.&lt;/p&gt;

&lt;p&gt;This join condition ensures that for each row from the left table, the LEFT JOIN includes the corresponding matching rows from the right table in the result set. If there is no match found in the right table, NULL values are returned for the columns from the right table.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Query&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="n"&gt;common_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="n"&gt;common_column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;•&lt;strong&gt;SELECT&lt;/strong&gt; columns specifies the columns you want to select from the combined result set.&lt;br&gt;
•&lt;strong&gt;table1&lt;/strong&gt; and &lt;strong&gt;table2&lt;/strong&gt; are the names of the tables you want to join.&lt;br&gt;
•&lt;strong&gt;LEFT JOIN&lt;/strong&gt; indicates that you're performing a left join.&lt;br&gt;
•&lt;strong&gt;ON table1.common_column = table2.common_column&lt;/strong&gt; specifies the join condition, where common_column is the column that exists in both tables and is used to match rows between them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.RIGHT JOIN&lt;/strong&gt;&lt;br&gt;
A RIGHT JOIN, also known as RIGHT OUTER JOIN, is a type of SQL join that returns all rows from the right table (table2) and includes matching rows from the left table (table1). The join condition is based on a related column between the two tables, specified in the ON clause of the RIGHT JOIN statement.&lt;/p&gt;

&lt;p&gt;The RIGHT JOIN ensures that all rows from the right table are retained in the result set, and for each row from the right table, it includes the corresponding matching rows from the left table based on the join condition. If there is no match found in the left table, NULL values are returned for the columns from the left table.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Query&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="n"&gt;common_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="n"&gt;common_column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;•&lt;strong&gt;SELECT&lt;/strong&gt; columns specifies the columns you want to select from the combined result set.&lt;br&gt;
•&lt;strong&gt;table1&lt;/strong&gt; and &lt;strong&gt;table2&lt;/strong&gt; are the names of the tables you want to join.&lt;br&gt;
•&lt;strong&gt;RIGHT JOIN&lt;/strong&gt; indicates that you're performing a right join.&lt;br&gt;
•&lt;strong&gt;ON table1.common_column = table2.common_column&lt;/strong&gt; specifies the join condition, where &lt;strong&gt;common_column&lt;/strong&gt; is the column that exists in both tables and is used to match rows between them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
SQL joins are integral for combining data from multiple related tables to generate meaningful relationships, that facilitate better insights. Understanding INNER JOIN, LEFT JOIN, and RIGHT JOIN helps us retrieve the exact data needed for the analysis.&lt;/p&gt;

</description>
      <category>sql</category>
      <category>database</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Window Functions: A guide to mastery.</title>
      <dc:creator>Ezekiel Kinyua</dc:creator>
      <pubDate>Sat, 17 Oct 2026 12:35:52 +0000</pubDate>
      <link>https://dev.to/ezzy_kinyua/window-functions-a-guide-to-mastery-3n7d</link>
      <guid>https://dev.to/ezzy_kinyua/window-functions-a-guide-to-mastery-3n7d</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;A SQL Window function that performs a calculation across a set of rows related to the current row, while preserving the individual rows in the result.&lt;br&gt;
Unlike aggregate functions, which group rows into a single output, window functions return a value for each row based on defined window, using the 'OVER()'  clause to specify the partitioning and ordering of the rows within that window.&lt;/p&gt;

&lt;p&gt;The name window in SQL is essentially a group of rows or observations within a table or result set. Depending on how the query is structured, multiple windows within the same table might be defined. &lt;/p&gt;

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

&lt;p&gt;Window functions are classified into several types based on their purpose and functionality. &lt;/p&gt;

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

&lt;h2&gt;
  
  
  Aggregate Window Function
&lt;/h2&gt;

&lt;p&gt;Aggregate window functions allow you to perform calculations such as finding totals, averages, or counts - across a specific set of rows also know as a Window. This returns  result for each individual row in your dataset. These functions combine the power of regular aggregate functions such as SUM, AVG, COUNT etc., with the flexibility of window functions.&lt;/p&gt;

&lt;h2&gt;
  
  
  AVERAGE() Window Function
&lt;/h2&gt;

&lt;p&gt;Suppose we want to find the average years of experience and specialty, without losing any individual rows.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Query;&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhcpwcf0ebnzoecqq659x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhcpwcf0ebnzoecqq659x.png" alt=" " width="705" height="205"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result;&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faxoqs0z38po49aat5b4p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faxoqs0z38po49aat5b4p.png" alt=" " width="781" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AVG(grade) OVER(PARTITION BY subject); calculates the average years of experience. The PARTITION BY specialty groups the rows by doctor specialty and calculates the average within each group.&lt;/li&gt;
&lt;li&gt;Every row keeps its individual data, but now each row shows the average years of experience for that specialty, making comparison easy for individual specialty against the average years of experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  MIN() and MAX() Window Function
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MIN()&lt;/strong&gt; - This functions returns the smallest value in a set of rows. In the context of window functions, it finds the minimum value within a specified "window" without reducing the total number of rows in the result set.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MAX()&lt;/strong&gt; - The function returns the largest value in a set of rows. In this context, it finds the maximum value within a specified window.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Suppose we want to find the highest and lowest number of years of experience within the doctors table.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Query&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5r34colr02jn2m5mx4uv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5r34colr02jn2m5mx4uv.png" alt=" " width="591" height="97"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmg5p8b2ai6kpvj6ft9x4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmg5p8b2ai6kpvj6ft9x4.png" alt=" " width="716" height="167"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MIN(doctor_experience_years) OVER(PARTITION BY doctor_specialty) calculates minimum years of experience for each doctor in the department.
Our data only contains one doctor per department.&lt;/li&gt;
&lt;li&gt;MAX(doctor_experience_years) OVER(PARTITION BY doctor_specialty) calculates maximum years of experience for each doctor in the department.
Our data only contains one doctor per department.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  COUNT() Window Function
&lt;/h2&gt;

&lt;p&gt;This function  is used to count the number of rows within a specified window of rows, without collapsing the result set. It is similar to the aggregate function COUNT(), but in this case, it counts rows within each partition while retaining each row in the output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Query&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F44mx3eu18yndix58lly5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F44mx3eu18yndix58lly5.png" alt=" " width="798" height="102"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8c3uutfyz63pq6tb2pb0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8c3uutfyz63pq6tb2pb0.png" alt=" " width="737" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ranking Window Function
&lt;/h2&gt;

&lt;p&gt;These functions assign a rank or position to each row within a specific set of rows. They are used to order rows and then assign a numerical rank based on that order. They don't group rows together, instead, they allow each row to retain its data while also showing its rank relative to others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ROW_NUMBER() Window Function&lt;/strong&gt;&lt;br&gt;
This function is used to assign a unique, sequential number to each row within a partition of a result set. It resets the numbering for each partition and increments by 1 for every row within that partition or result set.&lt;/p&gt;

&lt;p&gt;Suppose we have a table of doctors with their specialty and years of experience, and we want to assign a unique row number to each doctor within their specialty, ordered by years of experience.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Query&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fumx0pl38s5fdv17sv1c5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fumx0pl38s5fdv17sv1c5.png" alt=" " width="799" height="172"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fouij1fo3jf8uq16n3jdb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fouij1fo3jf8uq16n3jdb.png" alt=" " width="800" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;**RANK() Window Function&lt;br&gt;
This function assigns a rank to each row within a partition of a result set, based on the values in specified column. The rows with equal values are given the same rank, but this causes gaps in the ranking subsequent rows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Query&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F42ra7u3753qt4i2gx7d8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F42ra7u3753qt4i2gx7d8.png" alt=" " width="798" height="125"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz7yzidx2i1b4myixxzon.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz7yzidx2i1b4myixxzon.png" alt=" " width="800" height="103"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The PARTITION BY Specialty ranks the doctors within each specialty.&lt;/li&gt;
&lt;li&gt;Ordering by years of experience ranks the doctors within the same specialty in descending order of years of experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;DENSE_RANK() Window Function&lt;/strong&gt;&lt;br&gt;
This function is used to rank rows within a result set or partition without skipping any ranks, even when there are ties. Unlike the RANK() function, which skips ranks for tied values, DENSE_RANK() assigns the same rank to tied rows but does not leave gaps in the ranking sequence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PERCENT_RANK() Window Function&lt;/strong&gt;&lt;br&gt;
This function calculates the relative rank of a row as a percentage between 0 and 1 within its result set or partition. It is used to find the percentile ranking of a row compared to other rows.&lt;br&gt;
It is a useful function for determining the relative position of a row in a dataset, expressed as a percentage. It is particularly helpful when analyzing the distribution of values across a dataset.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NTILE() Window Function&lt;/strong&gt;&lt;br&gt;
It divides rows into a specified number of roughly equal-sized groups or buckets, assigning each row a "bucket number". This is useful for distributing data evenly into groups, like quartiles or percentiles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VALUE() Window Function&lt;/strong&gt;&lt;br&gt;
This function refers to specific window functions that retrieve values from certain positions within a window frame of rows. &lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;LAG()&lt;/strong&gt;: Accesses data from a previous row at a specified physical offset before the current row.&lt;br&gt;
• &lt;strong&gt;LEAD()&lt;/strong&gt;: Accesses data from a subsequent row at a specified physical offset after the current row.&lt;br&gt;
• &lt;strong&gt;FIRST_VALUE()&lt;/strong&gt;: Returns the value of the specified expression from the very first row in the window frame.&lt;br&gt;
• &lt;strong&gt;LAST_VALUE()&lt;/strong&gt;: Returns the value of the specified expression from the last row in the window frame.&lt;br&gt;
• &lt;strong&gt;NTH_VALUE()&lt;/strong&gt;: Retrieves the value from an exact user-defined row position  within the window partition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LEAD() Window Function&lt;/strong&gt;&lt;br&gt;
This function allows access of data from the following (next0 row relative to the current row in the result set. It helps in comparing a row with future rows, making it useful for operations like calculating differences over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LAG() Window Function&lt;/strong&gt;&lt;br&gt;
The function is the opposite of &lt;strong&gt;LEAD()&lt;/strong&gt;. It allows you to access data from a preceding row relative to the current row. It's useful for comparing the current row with past values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIRST_VALUE() Window Function&lt;/strong&gt;&lt;br&gt;
Both FIRST_VALUE and LAST_VALUE functions are used to retrieve the first or last value in a window of ordered rows. These functions are useful for accessing the first or last data point within a partition or an entire dataset. Useful for retrieving the earliest event in time series, such as the first sale, the first payment, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LAST_VALUE() Window Function&lt;/strong&gt;&lt;br&gt;
The &lt;strong&gt;LAST_VALUE()&lt;/strong&gt; function returns the last value in the window frame based on the specified ordering. Useful for retrieving the most recent data, like the last transaction or the most recent sale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nth_VALUE() Window Function&lt;/strong&gt;&lt;br&gt;
This function allows you to retrieve the value from a specific row, based on its position, within a window or partition. It is useful when you need to access not just the first or last value, but any specific row in the dataset.&lt;br&gt;
It returns the value of the &lt;strong&gt;N-th row&lt;/strong&gt; within the ordered window.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Window functions are essential functions for data analysis while maintaining individual rows. By mastering aggregate, ranking, and value functions, you can perform calculations, compare records, and uncover meaningful patterns in your datasets.&lt;br&gt;
The key is to understand how OVER(), PARTITION BY, and ORDER BY work together.&lt;/p&gt;

</description>
      <category>database</category>
      <category>sql</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Learning Excel For Data Science &amp; Analytics</title>
      <dc:creator>Ezekiel Kinyua</dc:creator>
      <pubDate>Sun, 30 Aug 2026 14:35:39 +0000</pubDate>
      <link>https://dev.to/ezzy_kinyua/learning-excel-for-data-science-analytics-3p00</link>
      <guid>https://dev.to/ezzy_kinyua/learning-excel-for-data-science-analytics-3p00</guid>
      <description>&lt;p&gt;Excel is one among the most popular tools generally used in data analysis.&lt;br&gt;
It allows us to perform various functions when handling data. These include;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data entry&lt;/strong&gt; – this involves keying in data collected into cells of a worksheet, to maintain records, manage information and keep a track on information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data cleaning&lt;/strong&gt; – this simply means making data usable by removing duplicates, errors and inconsistencies from a dataset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data analysis&lt;/strong&gt; – using excel, we can transform raw data into actionable insights, which informs better decision making.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reporting&lt;/strong&gt; – after cleaning and analyzing, the result is information that is easily understandable by various users to draw insights and make informed decisions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Basic Excel Terminologies;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;- Ribbon&lt;/strong&gt;&lt;br&gt;
This is the section of a worksheet where we have tabs and icons, arranged horizontally at the top of the worksheet. It contains various functions used to perform various operations while working on 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgbdrixaghzrwpnk1d2ht.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgbdrixaghzrwpnk1d2ht.png" alt=" " width="780" height="129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Cell&lt;/strong&gt;&lt;br&gt;
These are the grid-like spaces on the worksheet where we key-in data. These are the intersections between a column and a row.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;- Cell Address&lt;/strong&gt;&lt;br&gt;
This can be referred to as the name or the address of a selected cell. It shows the intersection between a column and a row. In this case, “column – R, row -19”.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0uwe5fga7x73w8cqaiop.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0uwe5fga7x73w8cqaiop.png" alt=" " width="217" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Column&lt;/strong&gt;&lt;br&gt;
This is the vertical grouping of the cells. Columns are named alphabetically, which can be seen at the top of the worksheet. In this case, the column is named as “A”.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1wz31gqdjg7iqolu3hq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1wz31gqdjg7iqolu3hq6.png" alt=" " width="537" height="221"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Row&lt;/strong&gt;&lt;br&gt;
This is the continuous horizontal running of cells across a worksheet.&lt;br&gt;
They are named in numbers. In this case, the row is denoted as “4”.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;- Tables&lt;/strong&gt;&lt;br&gt;
This is a combination of rows and columns.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feiyy0fh1mmiruy8ujkw8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feiyy0fh1mmiruy8ujkw8.png" alt=" " width="540" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Functions
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;- Operators&lt;/strong&gt;&lt;br&gt;
You can perform various functions on a data set to derive various insights using Excel. These include the following functions;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Addition (+)&lt;/li&gt;
&lt;li&gt; Subtraction (+)&lt;/li&gt;
&lt;li&gt; Multiplication (*)&lt;/li&gt;
&lt;li&gt; Division (/)&lt;/li&gt;
&lt;li&gt; Exponent (^)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;- Aggregate functions&lt;/strong&gt;&lt;br&gt;
These functions require a user to type in a specific function on Excel. These allows us to perform various operations such as;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; SUM – performs an addition of a range of figures.&lt;/li&gt;
&lt;li&gt; POWER – this raises a figure to a given power or exponent.&lt;/li&gt;
&lt;li&gt; PRODUCT – Multiplies all numbers in a given range.&lt;/li&gt;
&lt;li&gt; AVERAGE – this is the mean of a set of figures.&lt;/li&gt;
&lt;li&gt; MEDIAN – this gives the middle figure in a set of numbers.&lt;/li&gt;
&lt;li&gt; MODE – this shows the figure the appears most frequently.&lt;/li&gt;
&lt;li&gt; MIN - this function gives the result of the lowest value out of a group of figures or numbers.&lt;/li&gt;
&lt;li&gt; MAX – this function gives a result of the highest value out of a group of figures or numbers.&lt;/li&gt;
&lt;li&gt; SQUARE ROOT (SQRT) – this allows us to find the square root of a certain figure.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;- Statistical Functions&lt;/strong&gt;&lt;br&gt;
These tools or functions allow us to summarize and analyze data to arrive at insightful decisions. These functions include;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; COUNT – These counts only numeric cells or columns&lt;/li&gt;
&lt;li&gt; COUNTA – this function counts all non-blank cells&lt;/li&gt;
&lt;li&gt; COUNTBLANK – This function counts just the blanks.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;- Conditional Functions&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; COUNTIF / COUNTIFS – this function counts cells meeting a specific condition.&lt;/li&gt;
&lt;li&gt; SUMIF /SUMIFS – this gives a result of a total of certain entries that meet a certain condition.&lt;/li&gt;
&lt;li&gt; AVERAGEIF - this gives a result of the average of certain entries that meet a certain condition.&lt;/li&gt;
&lt;li&gt; TODAY - this function gives the current date.&lt;/li&gt;
&lt;li&gt; NOW – this function gives the current time.&lt;/li&gt;
&lt;li&gt; YEAR – this function extracts the year from a date entry.&lt;/li&gt;
&lt;li&gt; MONTH - this function extracts the month from a date entry.&lt;/li&gt;
&lt;li&gt; DAY - this function extracts the day from a date entry.&lt;/li&gt;
&lt;li&gt; NETWORKDAYS – this function calculates the total number of working days between two dates.&lt;/li&gt;
&lt;li&gt;DATEDIF – this function gives the total difference between two dates.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;- Conditional Formatting&lt;/strong&gt;&lt;br&gt;
This function allows us to highlight various entries in cells to make them observable based on certain specified conditions.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd3y04k6ni2znms4balc0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd3y04k6ni2znms4balc0.png" alt=" " width="780" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;These functions and features offers an array functions and capabilities in Data Analysis. We are able to draw valuable insights and arrive at informed decisions. I am looking forward to further understanding more functions and formulae in Excel as i continue to better my skills in data analytics.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>excel</category>
      <category>data</category>
      <category>beginners</category>
    </item>
    <item>
      <title>My Data Science &amp; Analytics Journey: Understanding Git, Git Bash &amp; GitHub</title>
      <dc:creator>Ezekiel Kinyua</dc:creator>
      <pubDate>Sun, 23 Aug 2026 16:39:48 +0000</pubDate>
      <link>https://dev.to/ezzy_kinyua/-my-data-science-analytics-journey-understanding-git-git-bash-github-4c73</link>
      <guid>https://dev.to/ezzy_kinyua/-my-data-science-analytics-journey-understanding-git-git-bash-github-4c73</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Every journey starts with a single first step. My journey in Data Science and Analytics started a fortnight ago. Coming from a career in finance and investments which revolves around numbers and making sense of them, a good interpretation and presentation is key for the numbers to make sense. And this is how i ended up enrolling at &lt;strong&gt;LuxdevHq&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At first, the Git ecosystem sounded complicated, but surprisingly, it is not and it is quite interesting to learn and use.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Git?
&lt;/h2&gt;

&lt;p&gt;Git is a software tool that allows me to make changes, manage and track projects or files that are locally hosted on my computer's hard drive.&lt;br&gt;
Git tracks by keeping a record of previous versions of my projects. It acts like a camera that captures a moment. A record of this would help to determine changes happening in that moment.&lt;/p&gt;
&lt;h3&gt;
  
  
  What is Git Bash?
&lt;/h3&gt;

&lt;p&gt;Think of Git Bash as a terminal where you can write commands to manage files or folders and projects. You can also use Git Bash to write commands that communicates with GitHub.&lt;/p&gt;
&lt;h4&gt;
  
  
  What is GitHub?
&lt;/h4&gt;

&lt;p&gt;GitHub is simply an online storage for your projects and files that allows you to access them remotely away from your PC. It also allows for sharing of the projects and files, and to also collaborate with other users of the same projects or files.&lt;/p&gt;
&lt;h5&gt;
  
  
  Further Definitions
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Repository&lt;/strong&gt; - Also know as a &lt;strong&gt;Repo&lt;/strong&gt;
This refers to a project being tracked and managed by Git Bash.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Push&lt;/strong&gt; - This refers to sending or uploading a file or project from a local machine to an online hosting such as GitHub.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloning&lt;/strong&gt; - This refers to downloading a git from the online hosting into my local machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branch&lt;/strong&gt; - A branch allows you to work on a new project without altering the original version.&lt;/li&gt;
&lt;/ol&gt;
&lt;h5&gt;
  
  
  Setting up the Git ecosystem on my PC
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Installing Git&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I downloaded from &lt;code&gt;git-scm.com&lt;/code&gt; and installed. This was the first step to installing Git Bash. To check that it worked, i ran the command&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Git Configuration&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This involved setting my name by running the command&lt;br&gt;
&lt;/p&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;"My name"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To configure my email,&lt;br&gt;
&lt;/p&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.email &lt;span class="s2"&gt;"My email"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Setting up SSH Keys&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This facilitates securely connecting my PC to GitHub. GitHub needs to securely connect to my PC.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Creating a repository on my PC&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This involves creating files and folders on my computer. A repo is simply a project or folder that is being tracked by Git.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Connecting to GitHub&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After securely storing the projects on my PC, the next step is to Push them online so that they are shareable and accessible remotely.&lt;/p&gt;

&lt;h5&gt;
  
  
  Conclusion
&lt;/h5&gt;

&lt;p&gt;This has been my last two weeks, in a nutshell.&lt;br&gt;
What i have learnt so far is that it is a journey of that requires me to &lt;strong&gt;commit&lt;/strong&gt;. As much as it is about learning and understanding new tools, it is more about how i will interpret and approach problems. The errors, the commands and every success are all part of this learning journey.&lt;/p&gt;

</description>
      <category>data</category>
      <category>github</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
