Why I’m Excited for POSETTE 2024: An Event for Postgres

I’m happy to share that I’ll be speaking at POSETTE: An Event for Postgres from June 11-13, 2024! 🚀 It’s a huge honor to be chosen to speak at this awesome event, and I’m thrilled to be part of such an amazing lineup of speakers.

About My Talk

My talk, “What Makes Azure Database for PostgreSQL Great for Developers?“, is something I’m particularly excited about. I’ll cover key features like integrating essential extensions such as pgvector and PostGIS, and simplifying deployments for Azure Database for PostgreSQL Flexible Server. It’s all about making cloud development smoother and more efficient for developers.

Continue reading “Why I’m Excited for POSETTE 2024: An Event for Postgres”

Mastering Data Manipulation with MERGE Command in PostgreSQL 15

Two years back, I wrote a blog post titled “PostgreSQL – Mastering UPSERT“, in which I explored the nuances of the INSERT ON CONFLICT command that allows conditional inserts or updates of rows.

Continuing its database technology innovation, PostgreSQL 15 has introduced an exciting new feature – the MERGE command. This command offers a more versatile approach to INSERT, UPDATE, or even DELETE rows in a table based on specific conditions. In this post, we’ll delve into the intricacies of this new MERGE command.

Continue reading “Mastering Data Manipulation with MERGE Command in PostgreSQL 15”

My talk at Citus Con 2023

I’m excited to be speaking at Citus Con 2023 on April 18-19 on reducing your PostgreSQL costs on Azure managed Postgres.


In my talk, I’ll be sharing tips and tricks that can help you save money without sacrificing performance. Join me at the upcoming conference to learn more about how you can optimize your Azure PostgreSQL deployment and reduce your costs.

https://www.citusdata.com/cituscon/2023/schedule/#od-session-dhawan

Whether you’re just getting started with Azure Postgres or you’re a seasoned pro, my talk will provide valuable insights and tips for optimizing your use of the platform. I’m looking forward to sharing my knowledge with the PostgreSQL community and learning from other experts in the field. See you at Citus Con 2023!

“Sharing your knowledge and learnings about Postgres—or Postgres extensions (like the Citus database extension)—is a useful way to give back to the community. Your talk can help other teams & projects learn from your successes (and mistakes) with Postgres.”

@clairegiordano

Thank Claire, for your inspiring words. They have really motivated me and given me the encouragement I needed for giving this talk. 🙌

PostgreSQL Advanced Pattern Matching – Beyond LIKE Operator

Whenever you are dealing with pattern matching in PostgreSQL, it is often required to write queries to match string patterns. The conventional wisdom to do pattern match was using the LIKE operator, which is not very effective for many reasons. PostgreSQL now offers more advanced pattern matching options such as SIMILAR TO expressions, POSIX regular expressions, and ANY operator. In this article, we’ll compare the LIKE operator with these other advanced pattern matching features.

Continue reading “PostgreSQL Advanced Pattern Matching – Beyond LIKE Operator”

Data Science with PostgreSQL – Using the Window frame_clause

This is my 5th (and final) post on Window Function in PostgreSQL series. In previous posts on this topic, I have covered window function basics, using aggregate window functionsranking window function and value window functions. While you’re here, I’ll recommend to you check the previous posts on this topic.

In this article, we’ll learn a new concept frame_clause. Let’s jump right in!

Continue reading “Data Science with PostgreSQL – Using the Window frame_clause”

Data Science with PostgreSQL – Value Window Functions

This far in the Window Function in PostgreSQL series I have covered window function basics, and how to use aggregate window functions and ranking window function. I suggest you check the previous posts out 🙂

In this 4th post, I’ll show you how to use Value window functions – that can be used to calculate various “value” type aggregations such as Lag, LeadFirst_Value and Last_Value within each group of rows referred here as “window” or “partition”.

Continue reading “Data Science with PostgreSQL – Value Window Functions”

Data Science with PostgreSQL – Ranking Window Functions

This is 3rd post in my series featuring Window Function in PostgreSQL. In this post, I’ll explain how to use Ranking window functions – that we can use to calculate various aggregations such as Row Number, Rank, and Dense Rank within each window or partition.

Continue reading “Data Science with PostgreSQL – Ranking Window Functions”

Data Science with PostgreSQL – Aggregate Window Functions

Here we go, after weeks for procrastination finally the 2nd post in my series featuring Window Function in PostgreSQL. In this post, I’ll explain how to use Aggregate window functions – that we can use to calculate various aggregations such as average, counts, minimum / maximum values, and sum within each window or partition.

Continue reading “Data Science with PostgreSQL – Aggregate Window Functions”

Data Science with PostgreSQL – Window Functions Basics

Window functions are a powerful tool that helps to leverage the power of PostgreSQL for Data Analysis. In this blog series, I will explain what window functions are, why you should use them, types of window functions and finally will introduce you to some basic window functions in PostgreSQL. In the next few post, I’ll go through more advanced window functions and demo some scenarios. So let’s get going.

Continue reading “Data Science with PostgreSQL – Window Functions Basics”

Recursive SQL for querying hierarchical data: Part 2 – Levels and Ancestors

Ok, so you’ve stored hierarchical data in a relational database, and written recursive CTEs to query the data and find relationships. Now the application team wants to query hierarchical levels and print the complete ancestry tree. Time to deep dive into some advance CTE constructs.

This is the second post of the series about the Recursive SQL for querying hierarchical data started in the previous post . If you haven’t read it already, I recommend reading it to understand the key concepts:

  1. What is a hierarchical data?
  2. How to store hierarchical data in a relational database?
  3. And how to query hierarchical data using:
    • Self-Joins
    • Common Table Expressions (CTE)

In this post, we’ll discuss the advanced scenarios like displaying hierarchical levels and printing the “ancestry tree”. Let’s dive in…

Continue reading “Recursive SQL for querying hierarchical data: Part 2 – Levels and Ancestors”