首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
牛客112736836号
获赞
12
粉丝
0
关注
4
看过 TA
6
厦门大学
2023
数据分析师
IP属地:美国
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑牛客112736836号吗?
发布(44)
评论
刷题
牛客112736836号
关注TA,不错过内容更新
关注
2021-07-18 10:16
厦门大学 数据分析师
题解 | #统计salary的累计和running_total#
【思路一】使用窗口函数select emp_no, salary, sum(salary) over(order by emp_no) as running_total from salaries where to_date ='9999-01-01【思路二】参照评论区大佬的写法,逐条比较计算running_totalSELECT s1.emp_no, s1.salary,(SELECT SUM(s2.salary)FROM salaries AS s2WHERE s2.emp_no <= s1.emp_noAND s2.to_date = '9999-01-01') AS runnin...
0
点赞
评论
收藏
分享
2021-07-18 09:44
厦门大学 数据分析师
题解 | #获取有奖金的员工相关信息。#
【思路】1.要想得到表中的btype和salary是比较简单的,用表连接就可以得到2.最后用 case when生成bonus【代码如下】select t1., t2.salary, casewhen t1.btype=1 then salary0.1when t1.btype=2 then salary0.2else salary0.3end as bonusfrom(select e.emp_no, e.first_name, e.last_name, eb.btype from employees as e inner join emp_bonus as eb on e.emp_no =...
0
点赞
评论
收藏
分享
2021-07-17 12:14
厦门大学 数据分析师
题解 | #使用含有关键字exists查找未分配具体部门的员工的所有信息。#
【用exists】:select * from employees ewhere not exists(select emp_no from dept_emp d where d.emp_no = e.emp_no);【不用exists】:select * from employees eleft join dept_emp d on d.emp_no = e.emp_nowhere d.emp_no is null;【exists与in的区别】:EXISTS语句:执行employees.length次指定一个子查询,检测行的存在。遍历循环外表,然后看外表中的记录有没有和内表的数据一样的。匹配...
0
点赞
评论
收藏
分享
2021-07-17 11:49
厦门大学 数据分析师
题解 | #查找排除当前最大、最小salary之后的员工的平均工资avg_salary#
【思路一】select avg(salary) as avg_salary from salaries where to_date = '9999-01-01' and salary not in (select max(salary) from salaries where to_date='9999-01-01') and salary not in (select min(salary) from salaries where to_date='9999-01-01')【思路二】SELECT (SUM(salary) - MAX(salary) - MIN(salary)) / (COU...
0
点赞
评论
收藏
分享
2021-07-17 11:40
厦门大学 数据分析师
题解 | #按照dept_no进行汇总#
【初次尝试】select dept_no, concat(emp_no,",") from dept_emp group by dept_noconcat并不是一个聚合函数,没有把一个部门的所有员工的员工号聚集在一起【修改后代码】select dept_no, group_concat(emp_no) from dept_emp group by dept_no要使用group_concat函数才行
0
点赞
评论
收藏
分享
2021-07-17 11:34
厦门大学 数据分析师
题解 | #获取Employees中的first_name#
【思路】用right(first_name,1)获取first_name的最后一个字母用left(right(first_name,2),1) 获取first_name的倒数第二个字母【代码如下】select first_name from employees order by left(right(first_name, 2),1), right(first_name, 1)
0
点赞
评论
收藏
分享
2021-07-16 12:05
厦门大学 数据分析师
题解 | #在audit表上创建外键约束,其emp_no对应employees_test表的主键id#
【创建外键约束】alter table 表名 add constraint foreign key (键) references 关联表(关联列)【代码如下】alter table audit add constraint foreign key (emp_no) references employees_test(id)【为什么要创建外键约束】FOREIGN KEY 约束用于预防破坏表之间连接的行为。 FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
0
点赞
评论
收藏
分享
2021-07-16 11:49
已编辑
厦门大学 数据分析师
题解 | #将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005#
【replace 函数用法】replace(列名,old_value,new_value)【代码如下】update titles_test set emp_no = replace(emp_no,10001,10005) where id=5如果不使用replace函数update titles_test set emp_no = 10005 where id=5 and emp_no = 10001
0
点赞
评论
收藏
分享
2021-07-16 11:23
厦门大学 数据分析师
题解 | #将所有to_date为9999-01-01的全部更新为NULL#
【新知识GET!!】更新某一列的值update table_name set 列民=新值 where 列名=某个值【代码如下】update titles_test set to_date = null, from_date = '2001-01-01' where to_date = '9999-01-01'
0
点赞
评论
收藏
分享
2021-07-16 11:09
厦门大学 数据分析师
题解 | #删除emp_no重复的记录,只保留最小的id对应的记录。#
【新知识GET!!!】删除表中的重复值,只保留最小的ID对应的记录1.使用 delete from2.用子查询找到emp_no中的最小id【代码如下】delete from titles_testwhere id not in(select * from(select min(id) from titles_test group by emp_no) as a)
0
点赞
评论
收藏
分享
2021-07-16 10:57
厦门大学 数据分析师
题解 | #构造一个触发器audit_log#
【新知识GET!!】在MySQL中,创建触发器语法如下:CREATE TRIGGER trigger_nametrigger_time trigger_event ON tbl_nameFOR EACH ROWtrigger_stmt其中:trigger_name:标识触发器名称,用户自行指定;trigger_time:标识触发时机,取值为 BEFORE 或 AFTER;trigger_event:标识触发事件,取值为 INSERT、UPDATE 或 DELETE;tbl_name:标识建立触发器的表名,即在哪张表上建立触发器;trigger_stmt:触发器程序体,可以是一句SQL语句,或者...
0
点赞
评论
收藏
分享
2021-07-14 10:19
已编辑
厦门大学 数据分析师
题解 | #对first_name创建唯一索引uniq_idx_firstname#
【GET新知识!!】【代码如下】alter table actor add unique uniq_idx_firstname(first_name);alter table actor add index idx_lastname(last_name)【怎么创建唯一索引】1.ALTER TABLE tbl_name ADD UNIQUE index_name (col_list);注意:这条语句创建索引的值必须是唯一的。2.ALTER TABLE tbl_name ADD PRIMARY KEY (col_list);注意:该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。【...
0
点赞
评论
收藏
分享
2021-07-14 10:10
厦门大学 数据分析师
题解 | #创建一个actor_name表#
【MYSQL创建数据表的三种方法】1.常规创建:create table if not exists 目标表2.复制表格:create 目标表 like 来源表3.将table1的部分拿来创建table2 本题考察第三种创建方式【代码如下】create table if not exists actor_name(first_name varchar(45) not null,last_name varchar(45) not null);insert into actor_nameselect first_name,last_namefrom actor
0
点赞
评论
收藏
分享
2021-07-14 10:05
厦门大学 数据分析师
题解 | #批量插入数据,不使用replace操作#
【mysql中常用的三种插入数据的语句】:insert into表示插入数据,数据库会检查主键,如果出现重复会报错;replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;insert ignore into actor values("3","ED","CHASE","2006-02-15 12:34:33");
0
点赞
评论
收藏
分享
2021-07-14 10:02
厦门大学 数据分析师
题解 | #批量插入数据#
【代码如下】insert into actor(actor_id, first_name, last_name, last_update)VALUES(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),(2,'NICK','WAHLBERG','2006-02-15 12:34:33')【注意】日期数据也要加引号,否则会报错。
0
点赞
评论
收藏
分享
1
2
3
关注他的用户也关注了:
牛客网
牛客企业服务