我有一个包含以下列的表table1:
(varchar)
我希望为decision是True和False的情况选择True,并按区域对结果进行分组。
最后,我想要3列:
判定为真的
的曲面的平均曲面
我试过:
SELECT
region,
(SELECT AVG(surface_m2) FROM table1 WHERE avis_final_bri),
(SELECT AVG(surface_m2) FROM table1 WHERE avis_final_bri)
FROM
table1
GROUP BY
region但是查询不起作用。
我还试图定义另一个表WITH语句,但它没有工作。我试过用JOIN,但也失败了。
发布于 2019-10-14 08:46:23
您可以使用FILTER子句:
SELECT
region,
AVG(surface) FILTER (WHERE decision = true),
AVG(surface) FILTER (WHERE decision = false)
FROM
table1
GROUP BY region或者,要使用更常见的SQL,可以使用CASE子句:
SELECT
region,
AVG(CASE WHEN decision = true THEN surface END),
AVG(CASE WHEN decision = false THEN surface END)
FROM
table1
GROUP BY regionhttps://stackoverflow.com/questions/58373028
复制相似问题