34. Calculate Revenue Contribution %
SELECT CustomerID,
SUM(Amount)*100.0/
SUM(SUM(Amount)) OVER()
ContributionPct
FROM Orders
GROUP BY CustomerID;
35. Find Customers Contributing 80% Revenue
Uses:
SUM() OVER()
Running percentage logic.
(Pareto Analysis)
36. Find Latest Salary for Employee
SELECT *
FROM
(
SELECT *,
ROW_NUMBER() OVER
(
PARTITION BY EmpID
ORDER BY EffectiveDate DESC
) rn
FROM SalaryHistory
)x
WHERE rn=1;
37. Find Employees With Salary Increase
SELECT *,
Salary -
LAG(Salary)
OVER(PARTITION BY EmpID
ORDER BY EffectiveDate)
IncreaseAmt
FROM SalaryHistory;
38. Find Employees With No Salary Increase
WHERE IncreaseAmt <= 0
39. Find Longest Serving Employee
SELECT TOP 1 *
FROM Employee
ORDER BY JoinDate;
40. Find Employee Tenure
SELECT EmpName,
DATEDIFF(YEAR,JoinDate,GETDATE())
Tenure
FROM Employee;
41. Find Orders Placed Today
SELECT *
FROM Orders
WHERE CAST(OrderDate AS DATE)=CAST(GETDATE() AS DATE);
42. Find Orders Last 7 Days
SELECT *
FROM Orders
WHERE OrderDate >= DATEADD(day,-7,GETDATE());
43. Find Sales by Month
SELECT YEAR(OrderDate),
MONTH(OrderDate),
SUM(Amount)
FROM Orders
GROUP BY YEAR(OrderDate),
MONTH(OrderDate);
44. Pivot Monthly Sales
SELECT *
FROM Sales
PIVOT
(
SUM(Amount)
FOR Month IN
([Jan],[Feb],[Mar])
)p;
45. Unpivot Columns Into Rows
SELECT *
FROM Sales
UNPIVOT
(
Amount
FOR Month IN
(Jan,Feb,Mar)
)u;
46. Find Null Values Count
SELECT COUNT(*) -
COUNT(Email)
FROM Customers;
47. Find Orphan Records
SELECT *
FROM Child c
LEFT JOIN Parent p
ON c.ParentID=p.ParentID
WHERE p.ParentID IS NULL;
48. Compare Source vs Target Counts
SELECT COUNT(*)
FROM SourceTable;
SELECT COUNT(*)
FROM TargetTable;
49. Find Changed Records During ETL
SELECT *
FROM Source s
JOIN Target t
ON s.ID=t.ID
WHERE s.HashValue<>t.HashValue;
50. Detect Slowly Changing Dimension Type 2 Changes
SELECT *
FROM Source s
JOIN DimCustomer d
ON s.CustomerID=d.CustomerID
WHERE s.Address<>d.Address;
Action:
- Expire current record
- Insert new version
Most Frequently Asked Among These
- 2nd Highest Salary
- Top N per Department
- Running Total
- MoM Growth using LAG
- Latest Record per Customer
- Duplicate Detection
- Employees Above Department Average
- Customers Without Orders
- Revenue Contribution %
- Gap and Island Problems (Missing IDs, Consecutive Dates)
These 10 patterns appear repeatedly across Tableau, Power BI, Snowflake, SQL Server, Oracle, and Data Warehouse interviews.
Advanced SQL Coding Scenarios set
ReplyDelete