举例说明PostgreSQL的计数功能

446 阅读2分钟

在大多数情况下,当与数据库打交道时,我们感兴趣的是存储在数据库中的实际记录。然而,可能会出现这样的情况:我们需要确定某个特定列或整个表中的记录数。

为了达到这个目的,我们可以定义一个自定义函数或使用内置的计数函数。在本指南中,我们将讨论计数函数和如何使用它的各种例子。

基本用法

这个函数的语法是

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查询来获得符合特定标准的行数。记住,实验是掌握的关键。