我有一些类似的查询。并希望按列获取结果。可能吗?我怎么走?是“ 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
... ... ... ... ...
答案 0 :(得分:0)
这个答案是推测性的,因为您没有向我们显示任何样本数据,但是我建议您基于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;