psql表基于count的子选择

时间:2018-05-01 10:25:07

标签: sql postgresql postgresql-9.1

我有一个表,我计算每个不同id的行数。 如果行数>> = 6,那么我想从原始表中选择具有从查询返回的id的行。

我设法编写了代码的第一部分,如下所示。

select * from (select id, count(*) from flights group by id) as fcount where count >= 6

现在,我如何从表格中选择与首次选择的ID匹配的所有行。

提前致谢

1 个答案:

答案 0 :(得分:0)

试试这个。

SELECT *
    FROM (
        SELECT f.*
            ,count(*) OVER (PARTITION BY ID) AS fcount
        FROM flights f
        ) s
    WHERE fcount >= 6

或者这个。

SELECT *
FROM Flights fo
WHERE EXISTS (
        SELECT 1
        FROM flights fi
        WHERE fi.id = fo.id
        GROUP BY id
        HAVING COUNT(*) >= 6
        )