У меня есть таблица с владельцами, авто, цена . В одном запросе (с использованием over и разбиения по) мне нужно получить один столбец с долей стоимости автомобиля во всех автомобилях владельца (один владелец может иметь несколько автомобилей) и долю стоимости автомобиля во всех автомобилях. Я сделал что-то вроде этого
price::decimal/sum(price)OVER(PARTITION BY owners.id),
price::decimal/sum(price)OVER(PARTITION BY SUM(price))
Первый работает отлично, но я не знаю, как сделать второй. SUM не работает, потому что мы должны указать на столбец, но как получить суммарную стоимость всех автомобилей в этом случае?
У меня, например, 3 машины, каждая стоит 10 $. Есть 2 владельца A и B. A имеет 2 машины. Так что мне нужно получить
- 1-й автомобиль А 50% (стоимость автомобилей А) 33% (стоимость всех автомобилей)
- 2-й автомобиль А 50% (стоимость автомобилей А) 33% (стоимость всех автомобилей)
- 1-й автомобиль B 100% (стоимость автомобилей B) 33% (стоимость всех автомобилей)
Мне просто любопытно, могу ли я сделать это без любой подзапрос, только с Partition By