gpt4 book ai didi

postgresql - Postgres COUNT FILTER 语法错误 - 为什么?

转载 作者:行者123 更新时间:2023-11-29 13:22:19 28 4
gpt4 key购买 nike

有人能找到我为什么这个查询会产生语法错误吗?这是一个简单的广告数据库,里面有类别和广告。该查询正在获取广告类别列表,并计算有多少广告和有多少事件广告,后者意味着不超过 2 周的广告。 PostgreSQL 说:

"("第 5 行或其附近的语法错误:FILTER(WHERE ads....^

另一个 COUNT 工作得很好。我不明白 FILTER 子句有什么问题。谢谢!

    $data = pg_query($dbconn, 'SELECT categories.id,
categories.name,
COUNT(ads.id) AS ads_count,
COUNT(ads.id)
FILTER (WHERE ads.date > '.strtotime('-2 weeks').')
AS ads_active_count
FROM erpatak.ads_categories AS categories
LEFT JOIN erpatak.ads AS ads ON ads.category = categories.id'
.$filter.'
GROUP BY categories.id, categories.name
ORDER BY name
OFFSET '.$offset.'
LIMIT '.$maxcount);

最佳答案

好的,我找到了解决方案。正如 Kamil G. 向我透露的那样,在我这里的 9.1 版中无法过滤 COUNT。解决方案是:

COUNT(CASE WHEN ads.date > '.strtotime('-2 weeks').' THEN 1 END) AS ads_active_count

关于postgresql - Postgres COUNT FILTER 语法错误 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39494149/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com