【发布时间】:2017-11-24 16:09:03
【问题描述】:
试图编写一个查询来获取连接表的列status的总和
我加入的两个表是mission 和media。一个任务记录可以有 0-->n 个媒体记录。
目前我的查询返回这样的结果。
例如
id job_id date lat long status
1893 HAM267 13:53:42 51.501671242483 -0.22951886283813 2
1893 HAM267 13:53:42 51.501577520364 -0.22880621040992 1
1893 HAM267 13:53:42 51.50137231105 -0.22878203293347 0
1893 HAM267 13:53:42 51.501506139391 -0.22880008494156 2
但是我想将所有相关的媒体记录分组并添加它们的status 列值。
1893 HAM267 13:53:42 51.501671242483 -0.22951886283813 5
我尝试对子查询进行求和,然后按每列分组,但这并没有达到预期的效果并出现错误:
[21000] 错误:用作表达式的子查询返回多行
查询
SELECT
mis.id AS "ID",
mis.job_id AS "Job ID",
to_char(mis.date, 'DD/MM/YYYY') AS "Date",
med.location_latitude AS "Lat",
med.location_longitude AS "Long",
(select sum(med.status) from media where med.mission_id = mis.id) AS "Status Aggregate"
FROM mission mis
LEFT JOIN media med
ON mis.id = med.mission_id
GROUP BY mis.id, med.location_longitude, med.location_latitude, med.mission_id, med.state, med.file_path;
【问题讨论】:
标签: postgresql subquery