0% found this document useful (0 votes)
13 views

Practice SQL Queries

The document contains SQL queries to retrieve customer and order data from a database. It includes queries to display order details with customer names, find orders over $100, list customers without orders, calculate average order total, and more.

Uploaded by

Vaishali Patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Practice SQL Queries

The document contains SQL queries to retrieve customer and order data from a database. It includes queries to display order details with customer names, find orders over $100, list customers without orders, calculate average order total, and more.

Uploaded by

Vaishali Patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

--1. Display the orders along with the corresponding customer names.

SELECT c.first_name, c.last_name,o.order_id, o.order_date


FROM orders o
JOIN customers c ON o.customer_id = c.customer_id;
--2. Retrieve the orders with a total amount greater than $100.
SELECT * FROM orders WHERE total_amount > 100.00;
--3. List customers who have not placed any orders.
SELECT c.*
FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id
WHERE o.order_id IS NULL;
--4. Display the average total amount of orders.
SELECT AVG(total_amount) AS average_total_amount FROM orders;
--5.Retrieve the customer names along with the total number of orders they have
placed.
SELECT c.first_name, c.last_name, COUNT(o.order_id) AS total_orders
FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.first_name, c.last_name;
--6. Display the orders placed in the year 2022, including customer information.
SELECT o.order_id, c.first_name, c.last_name, o.order_date, o.total_amount
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
WHERE strftime('%Y', o.order_date) = '2022';
--7. Find the customer with the highest total amount of orders.
SELECT c.customer_id, c.first_name, c.last_name, MAX(o.total_amount) AS
highest_total_amount
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id;
--8. To find the customer who has placed the 3rd highest amount of orders
--Method 1
SELECT c.customer_id, c.first_name, c.last_name, SUM(o.total_amount) AS
total_order_amount
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_id, c.first_name, c.last_name
ORDER BY total_order_amount DESC
LIMIT 1 OFFSET 2;
-- Method 2 using CTE(Common Table Expression)
WITH RankedOrders AS (
SELECT c.customer_id, c.first_name, c.last_name, SUM(o.total_amount) AS
total_order_amount,
ROW_NUMBER() OVER (ORDER BY SUM(o.total_amount) DESC) AS
order_rank
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_id, c.first_name, c.last_name
)
SELECT customer_id, first_name, last_name, total_order_amount
FROM RankedOrders
WHERE order_rank = 3;
--9. Find customers who have placed orders with a total amount greater than the
average total amount of all orders.
SELECT c.customer_id, c.first_name, c.last_name
FROM customers c
WHERE customer_id IN (
SELECT o.customer_id
FROM orders o
GROUP BY o.customer_id
HAVING SUM(o.total_amount) > (SELECT AVG(total_amount) FROM orders)
);
-- 10. Retrieve the customer details along with the total number of orders each
customer has placed.
SELECT c.customer_id, c.first_name, c.last_name,
(SELECT COUNT(*) FROM orders o WHERE o.customer_id = c.customer_id) AS
total_orders
FROM customers c;

You might also like