【刷题记录】牛客SQL编程题目刷题记录~
【刷题记录】牛客SQL编程题目刷题记录~
6YoungSQL3 查询结果去重
1 | select distinct university |
关键点:
- 使用
DISTINCT
关键字可以在查询中进行去重 - 同样,
DISTINCT
关键字也可以用在count()
等聚合函数中,进行去重统计count(distinct field)
SQL4 查询结果限制返回行数
1 | select device_id |
关键点:
使用
limit
关键字可以限制查询的行数检索记录行 6-10:
SELECT * FROM table LIMIT 5,5
检索记录行 11-last:
SELECT * FROM table LIMIT 10,-1
检索前 5 个记录行:
SELECT * FROM table LIMIT 5
SQL8 查找某个年龄段的用户信息
1 | select device_id, gender, age |
关键点:
- 使用
between
关键字,是双边闭区间
SQL15 查看学校名称中含北京的用户
1 | select device_id,age,university |
关键点:
- 字符匹配
- field [NOT] LIKE
- 匹配串中可包含如下四种通配符:
_
:匹配任意一个字符;%
:匹配0个或多个字符;[]
:匹配[ ]中的任意一个字符(若要比较的字符是连续的,则可以用连字符“-”表 达 );[^]
:不匹配[ ]中的任意一个字符。
SQL25 查找山东大学或者性别为男生的信息
1 | select |
关键点:
- 不去重的查询合并
union all
- 其他:如果使用
union
会去重
SQL26 计算25岁以上和以下的用户数量
1 | select |
关键点:
- 使用
case when ... then ... end
作为字段 - 同样他也可以用在聚合函数中,对符合要求的数据进行统计
SQL28 计算用户8月每天的练题数量
1 | select |
关键点:
- 使用
year()
、month()
、day()
函数提取日期中的年月日
SQL29 计算用户的平均次日留存率
1 | select |
关键点:
- 使用
datediff()
函数进行日期的加减,计算日期差距
SQL30 统计每种性别的人数
1 | select |
关键点:
- 使用
SUBSTRING_INDEX()
将字符串按照分隔符拆分,第二个参数是前n个块 IF(condition,1,0)
类似excel的条件函数FIND_IN_SET()
函数可以判断字符串是否在字符串中- 其他常用字符串函数:
ATE(substr,str)
:返回子串 substr 在字符串 str 中第一次出现的位置,如果字符substr在字符串str中不存在,则返回0;POSITION(substr IN str)
:返回子串 substr 在字符串 str 中第一次出现的位置,如果字符substr在字符串str中不存在,与LOCATE函数作用相同;LEFT(str,length)
:从左边开始截取str,length是截取的长度;RIGHT(str,length)
:从右边开始截取str,length是截取的长度;SUBSTRING(str,n,m)
:返回字符串str从第n个字符截取到第m个字符;REPLACE(str,n,m)
:将字符串str中的n字符替换成m字符;LENGTH(str)
:计算字符串str的长度。TRIM('被删除字段' from 列名)
:从字符串中剔除某些字符串
SQL33 找出每个学校GPA最低的同学
1 | select a.device_id, a.university, a.gpa |
关键点:
- 窗口函数
- 元组式判断是否在内
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果