我有一个表,我计算每个不同id的行数。 如果行数>> = 6,那么我想从原始表中选择具有从查询返回的id的行。
我设法编写了代码的第一部分,如下所示。
select * from (select id, count(*) from flights group by id) as fcount where count >= 6
现在,我如何从表格中选择与首次选择的ID匹配的所有行。
提前致谢
答案 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
)