-
Notifications
You must be signed in to change notification settings - Fork 0
/
3-Topping Pizzas [McKinsey SQL Interview Question]
27 lines (16 loc) · 1.31 KB
/
3-Topping Pizzas [McKinsey SQL Interview Question]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
with cte as (select ingredient_cost,topping_name,rank() over (order by topping_name) as pt
from pizza_toppings)
select concat(p1.topping_name,',',p2.topping_name,',',p3.topping_name) as pizza,
(p1.ingredient_cost + p2.ingredient_cost + p3.ingredient_cost) as total_cost
from cte p1
inner join cte p2 on p1.topping_name<p2.topping_name
inner join cte p3 on p2.topping_name<p3.topping_name
ORDER BY total_cost DESC, pizza
-------------
You’re a consultant for a major pizza chain that will be running a promotion where all 3-topping pizzas will be sold for a fixed price, and are trying to understand the costs involved.
Given a list of pizza toppings, consider all the possible 3-topping pizzas, and print out the total cost of those 3 toppings. Sort the results with the highest total cost on the top followed by pizza toppings in ascending order.
Break ties by listing the ingredients in alphabetical order, starting from the first ingredient, followed by the second and third.
P.S. Be careful with the spacing (or lack of) between each ingredient. Refer to our Example Output.
Notes:
Do not display pizzas where a topping is repeated. For example, ‘Pepperoni,Pepperoni,Onion Pizza’.
Ingredients must be listed in alphabetical order. For example, 'Chicken,Onions,Sausage'. 'Onion,Sausage,Chicken' is not acceptable.