在大多数情况下,当与数据库打交道时,我们感兴趣的是存储在数据库中的实际记录。然而,可能会出现这样的情况:我们需要确定某个特定列或整个表中的记录数。
为了达到这个目的,我们可以定义一个自定义函数或使用内置的计数函数。在本指南中,我们将讨论计数函数和如何使用它的各种例子。
基本用法
这个函数的语法是
SELECT count(aggr_expr) FROM table;
由于count函数是一个聚合函数,你可以传递一个通配符或一个特定的表达式,该函数将对其进行计数。作为参数传递给函数的表达式不能返回一个NULL值。
如果一个表达式返回一个NULL值,那么函数将不计算这个结果。
PostgresSQL计数函数示例
让我们通过各种例子来说明如何使用count函数。
例1
第一个例子是带有通配符的count函数。在这样的例子中,Postgres将按顺序扫描整个表并返回行的数量。
一个例子是。
SELECT count(*) FROM film;
count
-------
1000
(1 row)
上面的结果显示,该表包含100条记录。
如果你在一个有很多记录的表中执行上述操作,查询会很慢。
例2
另一个例子是计算特定列中的行数。你可以通过将列名传递给count函数来实现这个目的,如:
SELECT count(amount) FROM payment;
count
-------
14596
(1 row)
例3
我们也可以使用上面的例子,但是只返回该列中不同值的数量。比如说。
SELECT count(DISTINCT amount) FROM payment;
count
-------
19
(1 row)
上面显示了在支付表的金额列中有19个唯一值。
例4
假设你想获得符合特定标准的记录数量。在这种情况下,你可以在语句中传递一个条件语句,如:
SELECT count(*) FROM film WHERE replacement_cost > 15;
count
-------
700
(1 row)
上面的查询应该返回replacement_cost大于15的影片数量。
总结
本教程教会了你如何使用count查询来获得符合特定标准的行数。记住,实验是掌握的关键。