You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL查询返回数组时获取array_length的正确语法是什么

SQL获取返回数组长度的实现方案

适用PostgreSQL(与你给出的原语法适配度最高)

你原查询返回的是一维数组,直接使用array_length()函数即可,该函数第二个参数指定数组维度,一维数组填1:

SELECT array_length(
    ARRAY(
        SELECT journeys.id
        FROM JOURNEYS
        JOIN RESPONSES ON scenarios[1] = responses.id
        WHERE channel_name = 'channel1'
        ORDER BY journeys.id
    ),
    1
) AS journey_array_length;

优化提示:如果你不需要用到数组本身,只需要计数,直接走COUNT查询性能更好,省略了数组构造的开销:

SELECT COUNT(journeys.id) AS journey_count
FROM JOURNEYS
JOIN RESPONSES ON scenarios[1] = responses.id
WHERE channel_name = 'channel1';

其他数据库适配

  • MySQL(返回JSON数组场景):使用JSON_LENGTH()函数
SELECT JSON_LENGTH(
    JSON_ARRAY(
        SELECT journeys.id
        FROM JOURNEYS
        JOIN RESPONSES ON scenarios[1] = responses.id
        WHERE channel_name = 'channel1'
        ORDER BY journeys.id
    )
) AS journey_array_length;
  • SQL Server 2022及以上版本:使用ARRAY_LENGTH()函数
SELECT ARRAY_LENGTH(
    (
        SELECT journeys.id
        FROM JOURNEYS
        JOIN RESPONSES ON scenarios[1] = responses.id
        WHERE channel_name = 'channel1'
        ORDER BY journeys.id
        FOR JSON PATH
    )
) AS journey_array_length;

内容的提问来源于stack exchange,提问作者Hadas Hamerovv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:27:02