Sha*_*yHa 2 sql postgresql aggregate-functions
我有一个包含数组值列的表(在 group by 和 array_agg 函数之后)
COLUMN_VALUE | other_columns...
-----------: | -------:
{0.45,0.45,0.97,0.99}| ..
{0.45,0.45,0.85,0.99}| ..
{0.45,0.45,0.77,0.99}| ..
{0.45,0.45,0.10,0.99}| ..
Run Code Online (Sandbox Code Playgroud)
如何获得最频繁的值?(本例中每行 0.45)
我的猜测再次是 unnest 和 groupby,但我正在尝试找到更强大、更快的东西。
我用来构建表的查询
COLUMN_VALUE | other_columns...
-----------: | -------:
{0.45,0.45,0.97,0.99}| ..
{0.45,0.45,0.85,0.99}| ..
{0.45,0.45,0.77,0.99}| ..
{0.45,0.45,0.10,0.99}| ..
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用聚合在聚合过程中获取最频繁的值mode():
select column1, column2, column3,
array_agg(column4) as prices
mode() within group (order by column4 desc) as most_frequent_price
from tb
where ...
group by 1, 2, 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1911 次 |
| 最近记录: |