【发布时间】:2016-09-27 03:34:07
【问题描述】:
我正在尝试通过下面的聚合按子查询进行分组(我将查询简化为最基本的形式,group by n 查询)。
但我现在不需要使用最大值,而是需要以下启发式:
bar 范围为 0-2。我想按顺序从 2,0,1 中选择。但是我想在bar的original值上原始加入。
我可以编写自定义聚合函数来返回正确的属性吗?我对如何将两者结合起来有点迷茫。
SELECT
FOO.bar2
FROM
FOO
INNER JOIN(
SELECT
FOO.id,
custom_aggrgate(bar)
FROM
FOO
GROUP BY
FOO.id
) b ON FOO.bar = inverse_of_custom_aggrgate(bar) -- get org. value of bar to join by
【问题讨论】:
-
你能提供一个输入值和你正在寻找的输出的例子吗?
标签: sql postgresql group-by aggregate-functions greatest-n-per-group