Best ways to write a SQL query with an example

Md Mohosin Miah
3 min readDec 29, 2022

--

What is the best way to write a SQL query given with an example?

Let's imagine an example

The problem is to find the difference between the sum of prices for all sell operations and the sum of prices for all buy operations based on stock name. If a stock buys that must be sell and If a stock is sell that must be buy before.

Steps we have to consider to write better SQL queries.

  1. Understand the problem: First, try to understand what the problem is asking for. In this case, the problem is asking for the difference between the sum of prices for all sell operations and the sum of prices for all buy operations based on stock name.
  2. Analyze the data: Next, take a look at the data in the Stocks table to get a sense of what it looks like and what information it contains. This will help you understand how the data needs to be grouped and aggregated in order to get the desired results.
  3. Break down the query: After understanding the problem and analyzing the data, start breaking down the query piece by piece. This can help you understand how each part of the query contributes to the final result.
  4. Write the query: Once you have a good understanding of how the query works, start writing the query yourself. Pay attention to proper syntax and make sure to test your query as you go to ensure it’s working as expected.
  5. Optimize the query: Finally, once you have a working query, try to optimize it for performance. This might involve adding indexes, restructuring the query, or using hints to guide the query optimizer.

Here’s an example of how you might apply these steps to solve a problem using the provided query:

Suppose we have a table called Stocks that contains information about stock trades, including the name of the stock, the type of operation (buy or sell), and the price of the trade. The table might look something like this:

The problem is to find the difference between the sum of prices for all sell operations and the sum of prices for all buy operations, grouped by stock name.

  1. Understand the problem: The problem is asking us to find the difference between the sum of sell prices and the sum of buy prices, grouped by stock name.
  2. Analyze the data: From looking at the data, we can see that there are three different stock names: Apple, Google, and Microsoft. Each stock has one buy and one sell operation.
  3. Break down the query: The query uses a combination of the SUM and CASE functions to calculate the desired results. The SUM function is used to add up the prices of all sell and buy operations. The CASE function is used to determine which operations to include in the sum based on the value of the operation column.
  4. Write the query: Now that we understand how the query works, we can write it ourselves:
SELECT 
stock_name,
SUM(case when operation='Sell' then price end) - SUM(case when operation='Buy' then price end) as profit
FROM Stocks
GROUP BY stock_name

5. Optimize the query: There are a few ways we could optimize this query. For example, we could add indexes on the operation and stock_name columns to improve the performance of the GROUP BY and WHERE clauses. We could also consider restructuring the query to make it more efficient.

Method 2: Rewrite the above query

SELECT 
`stock_name`,
sum(case when `operation`='Sell' then price else - price end)
as `profit`
FROM
`Stocks`
GROUP BY `stock_name`

Happy Coding.

--

--

Md Mohosin Miah
Md Mohosin Miah

No responses yet