Postgresql行到列(UNION ALL到JOIN)

时间:2015-06-03 01:40:13

标签: postgresql

你好这个查询我得到一个包含四行的结果,我怎样才能改变它以获得每个有自己结果的四个命名列?

SELECT COUNT(*) FROM vehicles WHERE cus=1
UNION ALL
SELECT COUNT(*) FROM user WHERE cus=1
UNION ALL
SELECT COUNT(*) FROM vehicle_events WHERE cus=1
UNION ALL
SELECT COUNT(*) FROM vehicle_alerts WHERE cus=1

提前致谢。

2 个答案:

答案 0 :(得分:2)

仅UNION 添加行;它对列没有影响。

列,定义"形状"在行元组中,必须显示为选定列 1

例如:

 SELECT
      (SELECT COUNT(*) FROM vehicles WHERE cus=1) as veh_count
     ,(SELECT COUNT(*) FROM users WHERE cus=1) as user_count
     ..

1 还有其他构造可以允许这样做,例如参见crosstab - 但查询命令列 fixed 。它需要动态SQL来获取可变数量的列。

答案 1 :(得分:1)

Project.Client