如何计算 MySQL 中的不同值?


若要计算不同值,你可以在聚合函数 count() 中使用 distinct。

语法如下 −

select count(distinct yourColumnName) as anyVariableName from yourTableName;

为了理解以上概念,让我们创建一个表。以下是创建表的查询 −

mysql> create table DistinctDemo
   −> (
   −> Name varchar(200)
   −> );
Query OK, 0 rows affected (0.58 sec)

在我们的示例中,让我们在表中插入重复记录。插入记录的查询如下 −

mysql> insert into DistinctDemo values('John');
Query OK, 1 row affected (0.15 sec)

mysql> insert into DistinctDemo values('Sam');
Query OK, 1 row affected (0.17 sec)

mysql> insert into DistinctDemo values('John');
Query OK, 1 row affected (0.12 sec)

mysql> insert into DistinctDemo values('Johnson');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DistinctDemo values('John');
Query OK, 1 row affected (0.10 sec)

mysql> insert into DistinctDemo values('Johnson');
Query OK, 1 row affected (0.12 sec)

mysql> insert into DistinctDemo values('Sam');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DistinctDemo values('Johnson');
Query OK, 1 row affected (0.10 sec)

借助 select 语句显示所有记录。显示所有记录的查询如下 −

mysql> select *from DistinctDemo;

以下是输出,显示一些重复记录 −

+---------+
| Name    |
+---------+
| John    |
| Sam     |
| John    |
| Johnson |
| John    |
| Johnson |
| Sam     |
| Johnson |
+---------+
8 rows in set (0.00 sec)

以下是可以用来计算表中不同值的查询 −

mysql> select count(distinct Name) as DistinctValues from DistinctDemo;

以下是输出 −

+----------------+
| DistinctValues |
+----------------+
|              3 |
+----------------+
1 row in set (0.01 sec)

结果 i3 表明我们在表中有 3 个不同值。

更新于: 30-7-2019

8K+ 浏览

开启你的 职业

完成课程即可获得认证

立即开始
广告