jiang_dr
jiang_dr
全部文章
分类
题解(78)
归档
标签
去牛客网
登录
/
注册
jiang_dr的博客
目前专注于SQL的练习
TA的专栏
78篇文章
1人订阅
SQL练习
78篇文章
821人学习
全部文章
(共58篇)
题解 | #对于employees表中,给出奇数行的first_name#
来自专栏
首先说一下自己的思路,根据题意,难点在于取出奇数行的数据,因为表中没有相关排列数据,所以我就想构建一列,让这列对应行数据的排行,故此,在下面解释的第二点中解释了如何构建。 摘自其他人的回答,我觉得这个回答很好 本题使用了三层 SELECT 查询,为了便于理解,采用缩进方式分层,且最外层对应e1,最...
Mysql
Sqlite
2021-10-29
4
577
题解 | #统计salary的累计和running_total#
来自专栏
思路:使用标量子查询来进行累计求和 即将主表s1的emp_no确定之后,再到第三个字段中查询出小于等于主表的emp_no的所有salary进行求和。 这里的第三个字段就是进行累计求和。 select s1.emp_no, s1.salary, (select sum(s2.salary) from...
Mysql
Sqlite
2021-10-28
1
400
题解 | #获取有奖金的员工相关信息。#
来自专栏
思路:本体主要考察 CASE 表达式的使用 SELECT e.emp_no, e.first_name, e.last_name, b.btype, s.salary, (CASE b.btype WHEN 1 THEN s.salary * 0.1 WHEN 2 THEN s.salary...
Mysql
Sqlite
2021-10-28
1
442
题解 | #使用含有关键字exists查找未分配具体部门的员工的所有信息。#
来自专栏
思路:本题可以使用 EXISTS 和 IN 来解决 EXISTS: SELECT * FROM employees WHERE NOT EXISTS (SELECT * FROM dept_emp WHERE dept_emp.emp_no = employees.emp_no) IN: SELE...
Mysql
Sqlite
2021-10-28
1
549
题解 | #分页查询employees表,每5行一页,返回第2页的数据#
来自专栏
思路:分页查询 LIMIT语法: limit 当前页*页大小, 页大小 参数解释 当前页:要查询的页数,从 0 开始。 页大小:表示展示多少条数据 完整代码: select * from employees limit 5,5 使用偏移量 OFFSET OFFSET语法: LIMIT num...
Mysql
Sqlite
2021-10-27
2
500
题解 | #平均工资#
来自专栏
思路:按照题意使用 MAX/MIN + NOT IN 去除掉最大最小salary,然后算平均值。 查询在职员工的最大salary select max(salary) from salaries where to_date = '9999-01-01' 查询在职员工的最小salary se...
Mysql
Sqlite
2021-10-27
1
408
题解 | #按照dept_no进行汇总#
来自专栏
思路: 刚开始想的是使用 GROUP BY + CONCAT() 来解决,但是转念一想,CONCAT也无法确定参数的个数啊,故此这种方法貌似不行。 然后发现了 GROUP_CONCAT() 函数,可以将分组中的所有字符串给列出来,并且正好也是默认以 "," 拼接。 GROUP_...
Mysql
Sqlite
2021-10-27
5
592
题解 | #获取Employees中的first_name#
来自专栏
思路:本题主要考截取最后两个字母 字符串截取字符的函数有很多,这里列举几个 left(str, length) 从左开始截取字符串 说明:left(被截取字段,截取长度) right(str, length) 从右开始截取字符串 说明:right(被截取字段,截取长度) subst...
Mysql
Sqlite
2021-10-25
1
490
题解 | #查找字符串 10,A,B 中逗号,出现的次数cnt#
来自专栏
思路:本题使用length()函数与replace()函数相结合来解决问题 首先使用replace()函数将原字符串中的逗号用空串代替 然后使用原字符串的长度减去替换后字符的长度 完整代码: SELECT (length("10,A,B")) - length(REPLACE('10,A,B',...
Mysql
Sqlite
2021-10-25
1
474
题解 | #将employees表中的所有员工的last_name和first_name通过引号连接起来。#
来自专栏
CONCAT(str1, str2,...)的含义是将 str1,str2,... 直接连接起来 完整代码: SQLite SELECT last_name || "'" || first_name FROM employees MySQL select CONCAT(last_name,"'"...
Mysql
Sqlite
2021-10-25
2
668
首页
上一页
1
2
3
4
5
6
下一页
末页