gpt4 book ai didi

sql - N1QL/Couchbase - 显示每天产生的所有事件,其中不知道表格中可能有多少不同的日子

转载 作者:行者123 更新时间:2023-12-04 15:02:09 25 4
gpt4 key购买 nike

假设我有一个包含如下文档的存储桶:

[
{"topic":..., "event":..., "message":...,"date":......}
.
.
.
]

我如何编写一个查询,将每天特定事件类型的所有消息分组,而不对日期进行硬编码,并且假设我们不知道存储桶中有多少个不同的日期?

我正在考虑先获取不同的日期。 (例如,SELECT DISTINCT(date) FROM bucket)。有没有办法循环遍历这些天,将所有具有相同日期的事件放入一个数组中,并将所有数组联合在一起作为一个嵌套数组?

最佳答案

使用聚合查询。

SELECT b.date, ARRAY_AGG(b) AS docs
FROM mybucket AS b
WHERE b.event = "myevent"
GROUP BY b.date ;

如果日期是 ISO-8601 格式使用 https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/datefun.html按所需格式对日期函数进行分组。

SELECT DATE_FORMAT_STR(b.date,"1111-11-11") AS day, ARRAY_AGG(b) AS docs
FROM mybucket AS b
WHERE b.event = "myevent"
GROUP BY DATE_FORMAT_STR(b.date,"1111-11-11") ;

关于sql - N1QL/Couchbase - 显示每天产生的所有事件,其中不知道表格中可能有多少不同的日子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66785013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com