MySQL DISTINCT 和计数?
你需要在 MySQL 中将 GROUP BY 命令和聚合函数 count(*) 结合使用才能实现此操作。语法如下
SELECT yourColumnName,COUNT(*) AS anyVariableNameFROM yourTableName GROUP BY yourColumnName;
为了理解以上语法,我们先创建一个表。创建表的查询如下
mysql> create table selectDistinct_CountDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(10), -> AppearanceId int, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.63 sec)
使用插入命令在表中插入一些记录。查询如下
mysql> insert into selectDistinct_CountDemo(Name,AppearanceId) values('Larry',1); Query OK, 1 row affected (0.18 sec) mysql> insert into selectDistinct_CountDemo(Name,AppearanceId) values('John',2); Query OK, 1 row affected (0.24 sec) mysql> insert into selectDistinct_CountDemo(Name,AppearanceId) values('Larry',3); Query OK, 1 row affected (0.12 sec) mysql> insert into selectDistinct_CountDemo(Name,AppearanceId) values('Larry',10); Query OK, 1 row affected (0.18 sec) mysql> insert into selectDistinct_CountDemo(Name,AppearanceId) values('Carol',11); Query OK, 1 row affected (0.18 sec) mysql> insert into selectDistinct_CountDemo(Name,AppearanceId) values('Larry',15); Query OK, 1 row affected (0.18 sec)
使用 select 语句显示表中的所有记录。查询如下
mysql> select *from selectDistinct_CountDemo;
输出如下
+----+-------+--------------+ | Id | Name | AppearanceId | +----+-------+--------------+ | 1 | Larry | 1 | | 2 | John | 2 | | 3 | Larry | 3 | | 4 | Larry | 10 | | 5 | Carol | 11 | | 6 | Larry | 15 | +----+-------+--------------+ 6 rows in set (0.00 sec)
以下是用于选择 DISTINCT 和计数的查询
mysql> select Name,count(*) as TotalAppearance from selectDistinct_CountDemo -> group by Name;
输出如下
+-------+-----------------+ | Name | TotalAppearance | +-------+-----------------+ | Larry | 4 | | John | 1 | | Carol | 1 | +-------+-----------------+ 3 rows in set (0.00 sec)
广告