如何按列显示结果?

时间:2018-09-08 10:55:33

标签: mysql sql database join select

我有一些类似的查询。并希望按列获取结果。可能吗?我怎么走?是“ 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 :(得分: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;