如何编写返回总条数与分页数据的SQL++ Couchbase查询语句?
符合需求的Couchbase SQL++查询语句
你当前的查询会返回5条结果(因分页查询取了5条),每条结果包含count和单条数据字段,不符合你想要的单条JSON结构。可以通过两种方式实现目标输出:
方式一:使用ARRAY_AGG聚合分页数据
SELECT count_data.count, ARRAY_AGG(paged_data) AS paged_data FROM (SELECT count(*) AS count FROM main_data) AS count_data, (SELECT hosp_d.* FROM main_data AS hosp_d LIMIT 5) AS paged_data GROUP BY count_data.count;
- 用
ARRAY_AGG(paged_data)将分页查询返回的多条数据聚合为一个数组 GROUP BY count_data.count确保最终只返回一条包含总数和数据数组的结果
方式二:直接在SELECT子句中嵌套子查询
SELECT (SELECT count(*) FROM main_data) AS count, (SELECT hosp_d.* FROM main_data AS hosp_d LIMIT 5) AS paged_data;
- 这种写法更简洁,直接在主查询的SELECT中分别执行两个子查询,分别得到总数和分页数据数组,自然生成你需要的JSON结构
两种方式都能输出你期望的格式:
{ "count": 5, "paged_data": [{...}, {...}] }
内容的提问来源于stack exchange,提问作者axnet
相关产品推荐
相关产品推荐

