database - 如何在 PostgreSQL 8.0.2 中将列表转换为数组
问题描述
我有一个简单的清单。所有灰显的列具有相同的值。我需要的是一行,最后一列是“缺货、交货、缺货”——最好按字母顺序排序。
版本为 8.0.2。例如,我无权访问 string_agg() 。我想我几乎用这个查询到了那里,只是想尝试创建一个数组列: select array(select top 1 array_element::text from my_table
但是,我收到了这个错误:
[Amazon](500310) Invalid operation: Assert
Details:
-----------------------------------------------
error: Assert
code: 1000
context: subplan->subLinkType == EXPR_SUBLINK || subplan->subLinkType == EXISTS_SUBLINK -
query: 17680093
location: xen_execute.cpp:7497
process: padbmaster [pid=14308]
-----------------------------------------------;
1 statement failed.
Execution time: 1.08s
解决方案
您似乎正在寻找字符串聚合。在 Redshift 中,这是由listagg()
.
以下查询为您提供所有demande_source
值的逗号分隔列表,按字母顺序排列:
select listagg(demand_source, ',') within group(order by demand_source) as demande_sources
from mytable
推荐阅读
- windows - 使用带有 GCDS 参数的 PowerShell 脚本执行 EXE 文件
- python - 将日期更改为熊猫数据框中的特定条目
- nlp - NLTK 他和她的标签不同,
- spring - Spring - @Transactional - 什么时候刷新数据?
- c# - 如何使用 c# 驱动程序在 mongodb 嵌套数组中搜索
- scikit-learn - scikit-learn GaussianMixture 在初始化后立即终止
- php - 从 PHP 脚本执行包含 FFmpeg 的 shell 脚本
- javascript - 将缩放限制为指定图像
- google-maps - 有什么方法可以使用 Google Maps Static API 生成地形图?
- c# - 如何控制堆栈跟踪的深度