SQL习题1--去重(一)

目录

1、使用DISTINCT关键字去重

2、使用GROUP BY分组去重

3、知识点补充:对多个列去重


首先来看下题目:

现在查看用户来自于哪些学校,请从用户信息表中取出学校的去重数据。

                                                 user表
id name age gender university
1 Atom 21 man 清华大学
2 Atom2 20 man

北京大学

3 Atom3 23 woman 复旦大学
4 Atom4 25 woman 清华大学
5 Atom5 23 man 复旦大学

1、使用DISTINCT关键字去重

这时候我们可以使用关键字 distinct 进行去重处理

SELECT DISTINCT university FROM user 

再复习下DISTINCT,DISTINCT函数一般放在select后面,DISTINCT后面跟要去重的字段,表达式为:

select  distinct 要去重的字段   from 表

SQL习题1--去重(一)_第1张图片

2、使用GROUP BY分组去重

还有一种办法就是使用GROUP BY进行分组处理去重

SELECT university FROM user GROUP BY university

在使用GROUP BY进行去重时,需要把去重的字段放在GROUP BY后面,需要注意的是select后面跟的字段(除聚合函数的字段外)必须都出现在group by后面,但是group by后面的字段,可以不全部出现在select后面(如:select a,b from 表 group by a    这个就是不行的    但是如果 select a,b from 表 group by a,b,c   或者 select  a,avg(b) from 表 group by a 这两个语法就没问题  )

SQL习题1--去重(一)_第2张图片

3、知识点补充:对多个列去重

我们想对age和university两个列去重,应该怎么办呢?

这时候就需要把age和university看成一组数据,只有表中 age和university 都一样时才会进行去重,如表中的3和5.

可使用语句:

SELECT university,age  FROM user GROUP BY university,age  

或者

SELECT DISTINCT university,age  FROM user

DISTINCT和GROUP BY都是对后面的所有字段进行分组过去,不只是紧挨着的那个字段

SQL习题1--去重(一)_第3张图片


 下图为公众号二维码,内容会同步发出,大家可以关注一起学习

SQL习题1--去重(一)_第4张图片

你可能感兴趣的:(SQL练习题,sql,数据库)