当我们在表中有 350 行时,Array_accum 在 postgres SQL 中返回空值

Posted

技术标签:

【中文标题】当我们在表中有 350 行时,Array_accum 在 postgres SQL 中返回空值【英文标题】:Array_accum returning null values in postgres SQL when we have 350 rows in a table 【发布时间】:2016-03-22 06:01:57 【问题描述】:

我正在使用以下查询

select distinct throttle_id, array_accum(param) over (partition by throttle_id) as script_exclude from throttle_data where exclude = 't' and valve_type = 513 and throttle_id = 1270571881

我在 script_exclude 字段中得到空值

我在 param 列中的示例值是,

airfare/pricing/launch_0tc.wql airfare/pricing/launch_0xp.wql airfare/pricing/launch_0xp_down.wql airfare/pricing/launch_0xp_up.wql

行数为351

请告知我如何才能获得所有这些价值。

问候, 萨钦耆那教

【问题讨论】:

array_accum() 是做什么的?它不是标准的 Postgres 函数。如果你想要一个逗号分隔的列表,那么为什么不使用string_agg()。另外:您将distinct 与窗口函数一起使用的方式似乎表明您实际上希望group by 具有常规聚合 【参考方案1】:

请尝试以下方法:

select throttle_id, array_agg(param) as script_exclude 
  from throttle_data where exclude = 't' 
       and valve_type = 513 and throttle_id = 1270571881
group by throttle_id;

如果仍然返回 null 然后尝试:

select * from throttle_data
 WHERE exclude = 't'
       and valve_type = 513 and throttle_id = 1270571881;

查看实际聚合的内容。

如果没有返回任何行,那么你的 where 子句中的条件有问题。

【讨论】:

以上是关于当我们在表中有 350 行时,Array_accum 在 postgres SQL 中返回空值的主要内容,如果未能解决你的问题,请参考以下文章

在表中输入数据时运行小脚本

在 UIKit 中我们可以设置 label.numberOfLines = 0 当我们不知道文本将占用多少行时?在 SwiftUI 中有啥替代方法? [复制]

在表中有一对朋友,如何制作一个抽象获取用户朋友列表的视图?

SQL查询用户在表中有一条记录但没有另一条[关闭]

提交值后无法在表中获取值

当必须用单行指定行时,表中的 Markdown 多行代码块