SQL习题1--去重(一)

本文详细讲解了如何使用DISTINCT关键字和GROUP BY对user表中的university字段进行去重,包括单独使用和组合使用的方法,并介绍了针对多个字段的去重策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、使用DISTINCT关键字去重

2、使用GROUP BY分组去重

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


首先来看下题目:

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

                                                 user表
idnameagegenderuniversity
1Atom21man清华大学
2Atom220man

北京大学

3Atom323woman复旦大学
4Atom425woman清华大学
5Atom523man复旦大学

1、使用DISTINCT关键字去重

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

SELECT DISTINCT university FROM user 

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

select  distinct 要去重的字段   from 表

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 这两个语法就没问题  )

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都是对后面的所有字段进行分组过去,不只是紧挨着的那个字段


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘阿童木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值