2024年5月31日发(作者:)
count函数用法
不同 COUNT 函数的比较
可以使用不同形式的 COUNT 函数检索关于表的不同类型信息。下面的表格
总结了每种形式 COUNT 函数的含义:
COUNT 函数
COUNT (*)
描述
返回满足查询的行数。如果没有指定 WHERE 子
句,这个函数返回表的总行数。
COUNT (DISTINCT) 或
返回指定列中非 NULL 唯一值的数量
COUNT (UNIQUE)
COUNT (column) 或
返回指定列中非 NULL 值的总数
COUNT (ALL column)
一些例子可以帮助说明不同形式 COUNT 函数之间的区别。下面的大多数例
子对演示数据库中 orders 表的 ship_instruct 列进行查询。关
于 orders 表的结构和 ship_instruct 列中数据的信息,请参阅
《
IBM Informix: SQL
参考指南》
关于演示数据库的说明。
Count(*) 函数举例
在下面的例子中,用户想知道 orders 表的总行数。因此用户可以在不带
有 WHERE 子句的 SELECT 语句中调用 COUNT(*) 函数:
SELECT COUNT(*) AS total_rows FROM orders
下面的表格给出了查询结果。
total_rows
23
在以下的示例中,用户想知道 orders 表中有多少行在 ship_instruct 列中
有 NULL 值。用户在带有 WHERE 子句的 SELECT 语句中调
用 COUNT(*) 函数,并且在 WHERE 子句中指定 IS NULL 条件。
SELECT COUNT (*) AS no_ship_instruct FROM orders
WHERE ship_instruct IS NULL
下面的表格给出了查询结果。
no_ship_instruct
2
在下面的例子中,用户想知道 orders 表中有多少行的 ship_instruct 列具
有 express 值。因此用户可以在投影列表中调用 COUNT(*) 函数,并
在 WHERE 子句中指定等于(=)关系运算符。
SELECT COUNT (*) AS ship_express FROM ORDERS
WHERE ship_instruct = 'express'
下面的表格给出了查询结果。
ship_express
6
COUNT DISTINCT 函数举例
在下一个示例中,用户想知道 orders 表的 ship_instruct 列中有多少
非 NULL 唯一值。用户在 SELECT 语句的投影列表中调
用 COUNT DISTINCT 函数。
SELECT COUNT(DISTINCT ship_instruct) AS unique_notnulls
FROM orders
下面的表格给出了查询结果。
unique_notnulls
16
COUNT column 函数举例
在以下的示例中,用户想知道 orders 表的 ship_instruct 列中有多少
非 NULL 值。用户在 SELECT 语句的投影列表中调
用 COUNT(column) 函数。
SELECT COUNT(ship_instruct) AS total_notnullsFROM orders
下面的表格给出了查询结果。
total_notnulls
21
类似的对 ship_instruct 列中非 NULL 值的查询可以包括跟随 COUNT 关
键字的括号内的 ALL 关键字:
SELECT COUNT(ALL ship_instruct) AS all_notnulls FROM orders
下表给出的查询结果无论包含或省略 ALL 关键字都是一样的(因为 ALL 是缺
省值)。


发布评论