如何从标题多次运行的sql查询中获取结果?这显示了正确的值用于“ppp”但过滤 AND (count(*) over (partition by TITLE)) > 1
不起作用。
任何帮助都将不胜感激。
SELECT
AAA,
BBB,
CCC,
count(*) over (partition by TITLE) as PPP
FROM
my_tabel
WHERE
AAA IS NOT NULL
AND BBB = 'SOMETHING'
AND (count(*) over (partition by TITLE)) > 1
;
返回的错误
ERROR: window functions are not allowed in WHERE
当我使用
...
WHERE
AAA IS NOT NULL
AND BBB = 'SOMETHING'
;
所有内容都正确显示,但我需要一个ppp>1的列
3条答案
按热度按时间afdcj2ne1#
窗口函数不能用于
WHERE
子句作为其结果在满足WHERE
条款已提取。 Package 另一个SELECT
在它周围过滤WHERE
关于这个SELECT
.1szpjjfi2#
如果每一行都有一个唯一的标识符——您应该这样做——只需使用
exists
:这假设您实际上不需要将计数用于其他目的。
oknrviil3#
您还可以如下所示创建cte,并使用来自cte的ppp添加过滤器: