目的:统计去重后表中所有项总和。
直观想法:
SELECT COUNT(DISTINCT *) FROM [tablename]
结果是:语法错误。
事实上,我们可以一同使用 DISTINCT 和 COUNT 关键词,来计算非重复结果的数目。
COUNT函数 COUNT( { [ ALL | DISTINCT ] expression ] | * } ) ,COUNT不能统计多个字段。
解决办法:
select count(*) from (select distinct col1 ,col2 , col3 from table)A
====================================================
定义和用法
可以一同使用 DISTINCT 和 COUNT 关键词,来计算非重复结果的数目。
语法
SELECT COUNT(DISTINCT column(s)) FROM table
例子
注意:下面的例子仅适用于 ORACLE 和 Microsoft SQL server,不能用于 Microsoft Access。
"Orders"表:
Company | OrderNumber |
---|---|
IBM | 3532 |
W3School | 2356 |
Apple | 4698 |
W3School | 6953 |
例子 1
SELECT COUNT(Company) FROM Orders
结果:
4
例子 2
SELECT COUNT(DISTINCT Company) FROM Orders
结果:
3