具有分组依据的 PostgreSQL 聚合函数
Posted
技术标签:
【中文标题】具有分组依据的 PostgreSQL 聚合函数【英文标题】:PostgreSQL agregation function with group by 【发布时间】:2021-10-29 19:56:18 【问题描述】:我尝试从 PostgreSQL 获取输出到 Grafana,但出现错误
db 查询错误:pq:列“systemevents.receivedat”必须出现在 GROUP BY 子句或在聚合函数中使用
这是代码
SELECT
$__timeGroupAlias(receivedat,$__interval),
SUBSTRING(message, '(?:[0-9]1,3\.)3[0-9]1,3') AS the_address,
COUNT(message) as cc
FROM systemevents
WHERE
$__timeFilter(receivedat,$__interval)
GROUP BY the_address
ORDER BY cc DESC
如何解决这个问题?
【问题讨论】:
【参考方案1】:将其添加到 GROUP,例如(1
指的是 SELECT 的第一列):
SELECT
$__timeGroupAlias(receivedat,$__interval),
SUBSTRING(message, '(?:[0-9]1,3\.)3[0-9]1,3') AS the_address,
COUNT(message) as cc
FROM systemevents
WHERE
$__timeFilter(receivedat,$__interval)
GROUP BY 1, the_address
ORDER BY cc DESC
【讨论】:
以上是关于具有分组依据的 PostgreSQL 聚合函数的主要内容,如果未能解决你的问题,请参考以下文章