sql - 聚合返回 * 作为数组
问题描述
我有这个简单的查询:
delete from public.field
where template_id = 1
returning *
这工作正常,但当然它单独返回每一行,而我需要它返回编辑的每一行的数组。
我在另一个查询中有这个工作,这就是我想格式化删除查询的输出的方式:
SELECT array_to_json(array_agg(to_json(fields))) as fields
我无法解决的是如何将两者结合起来而不会出现语法错误。
这是在 PostgreSQL 9.6 中。
解决方案
这是做你想做的吗?
with d as (
delete from public.field
where template_id = 1
returning *
)
select array_to_json(array_agg(to_json(d)))
from d;
这将返回delete
CTE 的结果。然后使用 CTE 生成所需的 JSON 表示。
推荐阅读
- python - 二元分类概率的基础
- c# - ReCaptcha V3 - 如果验证失败怎么办?
- c# - 如何在一个 XY 图上组合两个信号?
- python-3.x - Apache Django 错误 - 从 lib64 加载模块但预期从不同目录加载
- c++ - 使用 clang LibTooling 处理复杂 CMake 结构中的独立源文件
- node.js - 如何将读取的文件添加到数组中并检查每个单词在 nodejs 中是否唯一?
- laravel - 如何更新多个用户的 Laravel
- for-loop - Terraform - 动态嵌套循环
- api - Symfony5 / 使用 API 编写自定义身份验证器总是返回我无效的凭据
- sql - 当组的值为 1 时,该组的所有值都应替换为 1 - SQL