Как отобразить результат по столбцам? - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть несколько похожих запросов.И хочу получить результат по столбцам.Является ли это возможным?Я какой путь?Это правильный синтаксис для "UNION"?

Пример:

select(
(select total, amount FROM table_1 where sale_type = "type_1" GROUP BY 
total WITH ROLLUP),
(select total, amount FROM table_1 where sale_type = "type_2" GROUP BY 
total WITH ROLLUP),
(select total, amount FROM table_1 where sale_type = "type_3" GROUP BY 
total WITH ROLLUP),
(select total, amount FROM table_1 where sale_type = 
"type_4" GROUP BY 
total WITH ROLLUP),ORDER BY total);

Спасибо!

Таблица результатов:

 total    type_1     type_2   type_3   type_4
  ...      ...        ...      ...      ...

1 Ответ

0 голосов
/ 08 сентября 2018

Этот ответ носит умозрительный характер, поскольку вы не показывали нам примерные данные, но я мог бы предложить вам использовать условные суммы, основанные на sale_type. Если это так, то следующий запрос должен соответствовать желаемому:

SELECT
    total,
    SUM(CASE WHEN sale_type = 'type_1' THEN amount ELSE 0 END) AS sum_1,
    SUM(CASE WHEN sale_type = 'type_2' THEN amount ELSE 0 END) AS sum_2,
    SUM(CASE WHEN sale_type = 'type_3' THEN amount ELSE 0 END) AS sum_3,
    SUM(CASE WHEN sale_type = 'type_4' THEN amount ELSE 0 END) AS sum_4
FROM table_1
GROUP BY total WITH ROLLUP;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...