Suppose you have a table called "orders" with the following columns: "order_id" (integer), "customer_id" (integer), "order_date" (date), and "total_price" (decimal). and we want to find out the total revenue generated by each customer in the month of Jan 2022.
Solution 1:
SELECT customer_id, SUM(total_price) AS total_revenue FROM orders WHERE order_date BETWEEN '2022-01-01' AND '2022-01-31' GROUP BY customer_id;
In this solution, we use the 
SUM() function to add up the "total_price" column for each customer, and the GROUP BY clause to group the results by customer_id. We also use the BETWEEN operator to filter the results to only include orders made in the month of January 2022. The resulting output will show the customer_id and the total revenue generated by each customer during that time period.Solution 2:
SELECT 
    customer_id, 
    SUM(CASE 
        WHEN order_date BETWEEN '2022-01-01' AND '2022-01-31' 
        THEN total_price 
        ELSE 0 
    END) AS total_revenue
FROM orders
GROUP BY customer_id;
This solution also calculates the total revenue generated by each customer in the month of January 2022. However, instead of using a 
WHERE clause to filter the data, it uses a CASE expression inside a SUM function to only include orders made within the specific time period. The GROUP BY clause groups the results by customer_id.
No comments:
Post a Comment