【发布时间】:2021-04-01 06:38:05
【问题描述】:
我正在使用 PostgreSQL,我有以下 SQL 查询
WITH A AS
(
SELECT *,
jsonb_array_elements(event_days) as event_days_arr
FROM event
)
SELECT event_id::int,
MAX(area_id)::int AS area_id,
array_agg(event_days_arr) as event_days
FROM A
WHERE
event_days_arr->>'start_datetime' >= '2020-12-22' AND
event_days_arr->>'end_datetime' < '2020-12-22T19:00:00'
GROUP BY event_id, event_alias
ORDER BY
(event_days_arr->0->>'start_datetime'),
(event_days_arr->0->>'end_datetime');
如您所见,我有一个名为“event_days”的数组,我想根据该数组第一个元素中的键对结果进行排序
由于某种原因,我有以下错误:
ERROR: column "a.event_days_arr" must appear in the GROUP BY clause or be used in an aggregate function
我已尝试使用 event_days、event_days_arr,但我无法根据每行的 JSONB 数组的第一个元素对查询结果进行排序
谁能帮我对这个查询的结果进行排序?
【问题讨论】:
标签: sql arrays postgresql jsonb unnest