我需要计算来自2个表的数据,并在单个输出中显示它们
我有2张桌子
branches
atms
我需要显示如下输出
bank_id atms branches
1 20 30
下面的查询在mysql上完美运行但在posgres中没有运气
SELECT * from (
(SELECT count(*) FROM branches where bank_id=30) as branch_count ,
(SELECT count(*) FROM atms where bank_id=30) as atm_count
)tmp
答案 0 :(得分:1)
如果您只是在查看一个bank_id,则不需要那么多子查询:
SELECT (SELECT count(*) FROM branches where bank_id=30) as branch_count ,
(SELECT count(*) FROM atms where bank_id=30) as atm_count
但是,如果你想得到所有银行的所有统计数据,假设你有一个表banks
来保存所有bank_ids
,那么下面的查询会有所帮助:
SELECT *
FROM banks B
LEFT JOIN (SELECT BR.bank_id, count(*) branch_count FROM branches BR GROUP BY BR.bank_id) as BC
ON BC.bank_id = B.bank_id
LEFT JOIN (SELECT AT.bank_id, count(*) atm_count FROM atms AT GROUP BY AT.bank_id) as AC
ON AC.bank_id = B.bank_id