SQL Scenario Based Questions-7
SQL Scenario Based Questions-7
Q: Find all orders where at least one product has a price greater than $100.
A:
SELECT customer_id,
SUM(DATEDIFF(day, LAG(order_date) OVER (PARTITION BY
customer_id ORDER BY order_date), order_date)) AS
total_time_between_orders
FROM orders
GROUP BY customer_id;
SELECT product_id
FROM sales
GROUP BY product_id
HAVING COUNT(DISTINCT region_id) = (SELECT COUNT(DISTINCT region_id)
FROM sales);
Nitya CloudTech Pvt Ltd.
8. Generate Monthly Sales Growth as a Percentage
11. Filter Orders with Most Recent Price for Each Product
Q: Retrieve orders showing only the latest price for each product.
Nitya CloudTech Pvt Ltd.
A:
Q: Find the total sales amount for the top 10% of customers by spending.
A:
WITH CustomerSpending AS (
SELECT customer_id, SUM(sales_amount) AS total_spend
FROM sales
GROUP BY customer_id
),
TopCustomers AS (
SELECT customer_id, total_spend,
PERCENT_RANK() OVER (ORDER BY total_spend DESC) AS
percentile
FROM CustomerSpending
)
SELECT SUM(total_spend) AS top_10_percent_total_sales
FROM TopCustomers
WHERE percentile <= 0.1;
WITH AverageSales AS (
SELECT AVG(sales_amount) AS avg_sales
FROM daily_sales
)
SELECT sales_date, sales_amount
FROM daily_sales, AverageSales
WHERE sales_amount > 1.5 * avg_sales OR sales_amount < 0.5 *
avg_sales;
Nitya CloudTech Pvt Ltd.
14. Rank Customers Based on Frequency of Purchases
SELECT order_id
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
WHERE o.shipping_address <> c.registered_address;
SELECT product_id,
Nitya CloudTech Pvt Ltd.
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY sales_amount) AS
median_sales
FROM product_sales
GROUP BY product_id;
WITH YearlyRaises AS (
SELECT employee_id, year, salary,
LAG(salary) OVER (PARTITION BY employee_id ORDER BY year)
AS prev_salary
FROM salaries
)
SELECT employee_id
FROM YearlyRaises
GROUP BY employee_id
HAVING COUNT(*) = COUNT(CASE WHEN salary > prev_salary THEN 1 END);
WITH SalesStats AS (
SELECT AVG(sales_amount) AS avg_sales, STDDEV(sales_amount) AS
stddev_sales
FROM sales
)
SELECT sales_id, sales_amount
Nitya CloudTech Pvt Ltd.
FROM sales, SalesStats
WHERE ABS(sales_amount - avg_sales) > 3 * stddev_sales;