@TemaKam

Как сделать группировку по 2 столбцам раздельно?

таблица
IQdiJex.jpg

нужно создать представление, где будут суммы cena по каждому id_pos_p и по каждому id_orugie_p
пытаюсь делать через UNION, но выводит 2 столбца, а не 4
запрос
CREATE VIEW bux_filter AS
SELECT id_orugie_p AS 'id orugie', SUM(cena) AS 'sum cena orugie' FROM postavki_filter
GROUP BY id_orugie_p
UNION ALL
SELECT id_pos_p AS 'id post', SUM(cena) AS 'sum cena post' FROM postavki_filter
GROUP BY id_pos_p


получается
qojZeoF.jpg

нужно
60e9cdcf5954d684210206.jpeg
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Согласитесь, что вы хотите странного, но даже для странных вещей можно найти решение. Например row_number и full join
SELECT 
	orugie, sum_cena_orugie, pos, sum_cena_pos
FROM (
  	SELECT row_number() over (order by id_orugie_p) orugie_rn,  id_orugie_p orugie, SUM(cena) sum_cena_orugie
	FROM test
	GROUP BY id_orugie_p
) t_orugie
FULL JOIN (
	SELECT row_number() over (order by id_pos_p) pos_rn,  id_pos_p pos, SUM(cena) sum_cena_pos
	FROM test
	GROUP BY id_pos_p
) t_pos on orugie_rn = pos_rn;


Test MS SQL queries online
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы