聚合计数窗口功能

时间:2018-03-29 07:58:34

标签: sql postgresql

我正在尝试创建一个返回具有相同名称的行的查询。

查询


left outer join fgt_ext_admin_managed_lov a    <<<
..
..
inner join fgt_address a    <<<<

我明白了:

SELECT
 version,
 name,
 count (version) OVER (PARTITION BY name)
FROM
 application
WHERE id = 123;

虽然预期结果是:

 version |         name         | count 
---------+----------------------+-------
 29.0    | Mouser               |     2
 28.0    | Mouser               |     2
 11.0    | Niche Norman         |     1
         | Galaxy Creator       |     0
         | Cube Generator       |     0

但是当我使用 version | name | count ---------+----------------------+------- 29.0 | Mouser | 2 28.0 | Mouser | 2 时,它什么都不返回。

1 个答案:

答案 0 :(得分:0)

你不能在窗口聚合中使用HAVING:

SELECT *
FROM
 (
    SELECT
     version,
     name,
     count (version) OVER (PARTITION BY name) as cnt
    FROM
     application
    WHERE id = 123
 ) as dt
WHERE cnt > 2;