为了在两个字段上实现GROUP BY并计数,让我们创建一个表。以下是创建表的查询-
mysql> create table GroupByTwoFieldsDemo −> ( −> Id int, −> Name varchar(200) −> );
让我们在表中插入一些记录-
mysql> insert into GroupByTwoFieldsDemo values(1,'John'); mysql> insert into GroupByTwoFieldsDemo values(10,'Johnson'); mysql> insert into GroupByTwoFieldsDemo values(9,'Carol'); mysql> insert into GroupByTwoFieldsDemo values(6,'Sam'); mysql> insert into GroupByTwoFieldsDemo values(5,'David'); mysql> insert into GroupByTwoFieldsDemo values(10,'Johnson'); mysql> insert into GroupByTwoFieldsDemo values(6,'Sam');
在select语句的帮助下显示表中的所有记录。查询如下-
mysql> select *from GroupByTwoFieldsDemo;
以下是输出-
+------+---------+ | Id | Name | +------+---------+ | 1 | John | | 10 | Johnson | | 9 | Carol | | 6 | Sam | | 5 | David | | 10 | Johnson | | 6 | Sam | +------+---------+ 7 rows in set (0.00 sec)
以下是将两列分组并计数的语法-
select yourColumnName1,yourColumnName2,....N,count(yourColumnName1) from GroupByTwoFieldsDemo group by yourColumnName1 desc,yourColumName2;
应用上述语法按两列分组并显示重复值的数量-
mysql> select Id,Name,count(Id) from GroupByTwoFieldsDemo group by id desc,Name;
以下是输出-
+------+---------+-----------+ | Id | Name | count(Id) | +------+---------+-----------+ | 10 | Johnson | 2 | | 9 | Carol | 1 | | 6 | Sam | 2 | | 5 | David | 1 | | 1 | John | 1 | +------+---------+-----------+ 5 rows in set, 1 warning (0.00 sec)