1.distinct
distinct用于返回某个字段去重后的记录
+------+--------+-------+
| id | name | point |
+------+--------+-------+
| 1 | 小明 | 100 |
| 1 | 小红 | 90 |
| 2 | 小刚 | 80 |
| 3 | 小军 | 80 |
+------+--------+-------+
使用distincy对id去重
mysql> select distinct id from test;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
+------+
如果同时对id和point去重,distinct默认同时满足id和point重复才去重,所以如果对上表执行,则结果没有实际去重效果
(如果想要获取去重后的完整记录信息可以使用group by函数)
mysql> select distinct id,point from test;
+------+-------+
| id | point |
+------+-------+
| 1 | 100 |
| 1 | 90 |
| 2 | 80 |
| 3 | 80 |
+------+-------+
distinct更多用于统计某个字段不重复记录的数量 -- count(distinct name)
mysql> select count(distinct name) from test;
+----------------------+
| count(distinct name) |
+----------------------+
| 4 |
+----------------------+
使用count函数统计某个字段不重复的记录数,关于count用法后面有介绍
2.group by
group by用于对数据进行分类归总,将查询结果按照1个或多个字段进行分组
mysql> select * from test group by id;
+------+--------+-------+
| id | name | point |
+------+--------+-------+
| 1 | 小明 | 100 |
| 2 | 小刚 | 80 |
| 3 | 小军 | 80 |
+------+--------+-------+
利用group by可以便捷的将数据记录去重,在by之后添加限定条件,指定需要分组的字段(可以指定多个字段)
3.order by
order by用于对数据进行排序,搭配关键字 asc/desc 指定 升降序 ,如不指定则默认从小到大升序(asc)
mysql> select * from test order by id desc;
+------+--------+-------+
| id | name | point |
+------+--------+-------+
| 3 | 小军 | 80 |
| 2 | 小刚 | 80 |
| 2 | b | 100 |
| 2 | c | 100 |
| 1 | 小明 | 100 |
| 1 | 小红 | 90 |
|
MySQL常用查询函数与关键字详解

本文详细介绍了MySQL中的一些常见查询函数和关键字,包括distinct、group by、order by、sum/min/max、join on、limit、count、AS、having、in/not in的用法和示例,帮助理解如何在SQL查询中进行数据去重、分组、排序、聚合及过滤操作。
最低0.47元/天 解锁文章
929

被折叠的 条评论
为什么被折叠?



