当我们在表中有 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 中有啥替代方法? [复制]