说明:
SQLite 的GROUP BY 子句用于与 SELECT 语句一起使用,来对相同的数据进行分组。
在 SELECT 语句中,GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前。
假设有如下表:
ID NAME AGE
---------- ---------- ----------
1 xiaoming 18
2 xiaohua 18
3 mingming 19
4 xiaogang 20
5 honghong 17
6 liangliang 21
7 tingting 23
语法:
可以在 GROUP BY 子句中使用多个列。确保您使用的分组列在列清单中。
SELECT column-list
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN;
实例:
为了测试,需要再插入几条数据:
sqlite> insert into student values(8, 'honghong', 17);
sqlite> insert into student values(9, 'liangliang', 21);
sqlite> insert into student values(10, 'honghong', 23);
sqlite> select * from student;
ID NAME AGE
---------- ---------- ----------
1 xiaoming 18
2 xiaohua 18
3 mingming 19
4 xiaogang 20
5 honghong 17
6 liangliang 21
7 tingting 23
8 honghong 17
9 liangliang 21
10 honghong 23
显示相同名字的人数和相应的名字:
sqlite> select NAME, count(NAME) from student group by NAME;
NAME count(NAME)
---------- -----------
honghong 3
liangliang 2
mingming 1
tingting 1
xiaogang 1
xiaohua 1
xiaoming 1
与order by一起使用:
sqlite> select NAME, count(NAME) from student group by NAME order by count(NAME);
1. 请说明下面语句的意义?
select NAME, count(NAME) from student group by NAME order by NAME;