如何在PostgreSQL中统计每行的ID数量?
解决方案
针对你的需求,我们可以利用PostgreSQL的字符串处理函数实现每行ID数量的统计:
基础统计(仅输出数字)
如果只需要输出数字(null行显示0),使用以下SQL语句:
SELECT COALESCE(array_length(string_to_array(Column_x, ';'), 1), 0) AS count_ids FROM your_table_name;
string_to_array(Column_x, ';'):将Column_x的内容按分号分割为数组array_length(..., 1):获取数组长度,即该行ID的数量COALESCE(..., 0):当Column_x为null时,返回0替代null值
匹配预期输出格式(带说明文本)
如果需要和你给出的预期输出完全一致(非0行显示“数字 (Count of Id's)”),用CASE语句拼接文本:
SELECT CASE WHEN Column_x IS NULL THEN '0' ELSE CONCAT(array_length(string_to_array(Column_x, ';'), 1), ' (Count of Id''s)') END AS Column_x FROM your_table_name;
- 注意字符串内的单引号需要用两个单引号
''转义,保证SQL语法正确 CASE分支分别处理null和非null行的输出格式
替换提示
记得把上述SQL中的your_table_name替换为你实际的数据表名称。
内容的提问来源于stack exchange,提问作者Jagdish BR
相关产品推荐
相关产品推荐

