我有一个表格表格:(答案必须适用于PostGreSQL 9.2
StateName,ContryName,Pop等//顺便说一下状态也可能是省,我用它们可互换
我想删除任何状态太多的国家/地区
这是一个过滤器,但由于我按国家/地区分组(states.admin),我收到错误,因为states.name不在group子句中。
我想要一个过滤的表,只删除超过100个州的国家/地区的所有行。
我有道理吗?我假设我需要某种WHERE子查询。
SELECT
states.name,
states.admin
FROM
vector.states
GROUP BY
states.admin
HAVING COUNT(*) < 100
ORDER BY
states.admin ASC;
答案 0 :(得分:6)
SELECT s.name,s.admin
FROM states s
INNER JOIN (
SELECT ss.admin
FROM states ss
GROUP BY ss.admin
HAVING COUNT(*) < 100
) a ON a.admin = s.admin
ORDER BY s.admin ASC;