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

如何用PostgreSQL统计Northwind数据库中的表行数?

解决PostgreSQL统计Northwind数据库表行数的问题

你的代码返回1的核心原因:

  • select * from products into produk; 只会把products表的第一行数据赋值给produk变量,因为products%rowtype是单一行的类型,只能存储一条记录。
  • count(produk) 是统计这个单个变量的数量,结果必然是1,完全没统计到表的总行数。

最简单高效的解决方法(直接用SQL)

不需要用PL/pgSQL,直接执行普通SQL就能得到正确行数:

SELECT COUNT(*) FROM products;

如果要统计某列非空的行数(比如排除product_id为NULL的情况),可以指定列名:

SELECT COUNT(product_id) FROM products;

必须用PL/pgSQL的写法

如果业务场景要求用匿名块实现,需要用变量存储统计结果,而不是读取整行数据:

DO $$
DECLARE
    row_count INTEGER;
BEGIN
    SELECT COUNT(*) INTO row_count FROM products;
    RAISE NOTICE 'products表总行数:%', row_count;
END;
$$

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:30:51