自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 问答 (3)
  • 收藏
  • 关注

原创 NC4_判链表中是否有环

算法练习:NC2_中等题目:判断给定的链表中是否有环。如果有环则返回true,否则返回false。你能给出空间复杂度的解法么?解答//思路:快慢指针public class Solution { //判断是否有环的方法,head是链表头部 public boolean hasCycle(ListNode head) { ListNode fast = head; //快指针 ListNode slow = head; //慢指针 whil

2021-04-07 17:22:31 100

原创 牛客在线编程练习:NC78_反转链表

算法练习:NC2_中等题目:输入一个链表,反转链表后,输出新链表的表头。解答//如1->2->3->4 => 4->3->2->1public class Solution { public ListNode ReverseList(ListNode head) { //看看链表是否为空 if(head == null){ return null; } //上

2021-03-22 16:10:06 165

原创 牛客在线编程练习:SQL69_较难

SQL练习:SQL69_较难题目: 查询每个日期登录新用户个数,并且查询结果按照日期升序排序。题解:# 方式1:窗口函数ROW_NUMBER+CASE语句# 思路:给每个用户分区,选出编号为1与对应日期的记录,CASE函数做判断后SUMSELECT A.date,SUM( CASE WHEN t_rank = 1 THEN 1 # 编号为1的是用户新登录 ELSE 0 # 其他编号的是用户再次登录 END)FROM (SELECT date,ROW_NUMBE

2021-02-09 18:11:56 133

原创 牛客在线编程练习:SQL68_较难

SQL练习:SQL68_较难题目:题解:# 思路:# 1.找新登录次日又登录的用户;# 2.找用户登录记录的用户总数;# 3.结果=round(步骤1/步骤2)SELECT ROUND(COUNT(DISTINCT user_id) * 1.0 / ( # COUNT新登录后,次日登录的用户数 SELECT COUNT(DISTINCT user_id) # 2.COUNT用户总数,DISTINCT去除重复用户 FROM login) ,3) # 保存小数点后面3位FRO

2021-02-09 16:28:44 122

原创 牛客在线编程练习:SQL67_较难

SQL练习:SQL67_较难题目:查询每个用户最近一天登录的日子,用户的名字,以及用户用的设备的名字,并且查询结果按照user的name升序排序。牛客每天有很多人登录,请你统计一下牛客每个用户最近登录是哪一天,用的是什么设备.有一个登录(login)记录表,简况如下:题解:# 方式1:sqlite的解法SELECT U.name u_n,C.name c_n,MAX(date) dateFROM login L,user U,client CWHERE L.client_id = C

2021-02-08 00:24:39 214 1

原创 牛客在线编程练习:SQL66_简单

SQL练习:SQL66_简单题目: 查询每个用户最近一天登录的日子,并且按照user_id升序排序。牛客每天有很多人登录,请你统计一下牛客每个用户最近登录是哪一天。有一个登录(login)记录表,简况如下:第1行表示id为2的用户在2020-10-12使用了客户端id为1的设备登录了牛客网。。。第4行表示id为3的用户在2020-10-13使用了客户端id为2的设备登录了牛客网查询结果表明:user_id为2的最近的登录日期在2020-10-13user_id为3的最近的登录日期也是2

2021-02-06 23:38:51 135

原创 牛客在线编程练习:SQL65_较难

SQL练习:SQL65_较难题目: 写一个sql查询,每一个日期里面,正常用户发送给正常用户邮件失败的概率是多少,结果保留到小数点后面3位(3位之后的四舍五入),并且按照日期升序排序。题解:# 考点:左/右外连接SELECT p.id,p.name,t.contentFROM person pLEFT JOIN task t ON p.id = t.person_idORDER BY p.id现在有一个需求,让你统计正常用户发送给正常用户邮件失败的概率:有一个邮件(email)表,id为

2021-02-06 23:26:36 201 1

原创 牛客在线编程练习:SQL64_简单

SQL练习:SQL64_简单题目:请你找到每个人的任务情况,并且输出出来,没有任务的也要输出,而且输出结果按照person的id升序排序。有一个person表,主键是id,如下:有一个任务(task)表如下,主键也是id,如下:输出情况如下:题解:# 考点:左/右外连接SELECT p.id,p.name,t.contentFROM person pLEFT JOIN task t ON p.id = t.person_idORDER BY p.id个人整理的笔记,仅供学

2021-02-06 22:05:48 167 1

原创 牛客在线编程练习:SQL63_中等

SQL练习:SQL63_中等题目: 在牛客刷题有一个通过题目个数的(passing_number)表,id是主键,简化如下:第1行表示id为1的用户通过了4个题目;…第3行表示id为3的用户通过了3个题目;请你根据上表,输出通过的题目的排名,通过题目个数相同的,排名相同,此时按照id升序排列,数据如下:id为5的用户通过了5个排名第1,id为1和id为6的都通过了2个,并列第2题解:# 考点:窗口函数DENSE_RANKSELECT *,DENSE_RANK() OVER(ORDER

2021-02-06 17:13:01 76

原创 牛客在线编程练习:SQL62_简单

SQL练习:SQL62_简单题目: id为用户主键id,number代表积分情况,让你写一个sql查询,积分表里面出现三次以及三次以上的积分题解:# 考点:分组查询SELECT numberFROM gradeGROUP BY numberHAVING COUNT(*) >= 3个人整理的笔记,仅供学习使用,有问题麻烦指正。题目来源于:牛客网...

2021-02-06 16:56:53 125

原创 牛客在线编程练习:SQL61_较难

SQL练习:SQL61_较难题目: 对于employees表中,输出first_name排名(按first_name升序排序)为奇数的first_nameCREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,

2021-02-06 16:47:49 116

原创 牛客在线编程练习:SQL60_较难

SQL练习:SQL60_较难题目: 按照salary的累计和running_total,其中running_total为前N个当前( to_date = ‘9999-01-01’)员工的salary累计和,其他以此类推。 具体结果如下Demo展示。CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NUL

2021-02-06 15:08:18 96

原创 牛客在线编程练习:SQL59_较难

SQL练习:SQL59_较难题目: 获取有奖金的员工相关信息。CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (`emp_

2021-02-06 14:18:51 98 1

原创 牛客在线编程练习:SQL57_中等

SQL练习:SQL57_中等题目: 使用含有关键字exists查找未分配具体部门的员工的所有信息。CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,

2021-02-05 22:39:07 79

原创 牛客在线编程练习:SQL56_较难

SQL练习:SQL56_较难题目: 获取所有员工的emp_no、部门编号dept_no以及对应的bonus类型btype和received,没有分配奖金的员工不显示对应的bonus类型btype和receivedCREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`e

2021-02-05 21:16:21 113

原创 牛客在线编程练习:SQL55_中等

SQL练习:SQL55_中等题目: 分页查询employees表,每5行一页,返回第2页的数据CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PR

2021-02-05 15:42:07 74

原创 牛客在线编程练习:SQL54_中等

SQL练习:SQL54_中等题目: 查找排除最大、最小salary之后的当前(to_date = ‘9999-01-01’ )员工的平均工资avg_salary。CREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));输出格式

2021-02-05 15:29:55 55

原创 牛客在线编程练习:SQL53_中等

SQL练习:SQL53_中等题目: 按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employeesCREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));输出

2021-02-05 15:01:58 66

原创 牛客在线编程练习:SQL52_中等

SQL练习:SQL52_中等题目: 获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire

2021-02-05 14:08:34 86

原创 牛客在线编程练习:SQL51_中等

SQL练习:SQL51_中等题目: 查找字符串’10,A,B’ 中逗号’,'出现的次数cnt。题解:# 思路:原字符串-去掉【,】的字符串,即得到次数SELECT LENGTH('10,A,B') - LENGTH(REPLACE('10,A,B',",","")) cnt;## LENGTH函数统计字符串长度,REPLACE函数用于替换(为空则去除)指定字符串个人整理的笔记,仅供学习使用,有问题麻烦指正。题目来源于:牛客网...

2021-02-05 13:51:53 84

原创 牛客在线编程练习:SQL50_中等

SQL练习:SQL50_中等题目:将employees表中的所有员工的last_name和first_name通过(’)连接起来。(sqlite不支持concat,请用||实现,mysql支持concat)CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL

2021-02-05 13:42:38 80

原创 牛客在线编程练习:SQL48_中等

SQL练习:SQL48_中等题目:请你写出更新语句,将所有获取奖金的员工当前的(salaries.to_date=‘9999-01-01’)薪水增加10%。(emp_bonus里面的emp_no都是当前获奖的所有员工)create table emp_bonus(emp_no int not null,btype smallint not null);CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NO

2021-02-05 13:36:32 62

原创 牛客在线编程练习:SQL46_中等

SQL练习:SQL46_中等题目: 在audit表上创建外键约束,其emp_no对应employees_test表的主键id。(以下2个表已经创建了)CREATE TABLE employees_test(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL);CREATE TABLE audit(EMP_no INT NOT NULL,create_

2021-02-05 13:24:10 66

原创 牛客在线编程练习:SQL45_简单

SQL练习:SQL45_简单题目: 将titles_test表名修改为titles_2017CCREATE TABLE IF NOT EXISTS titles_test (id int(11) not null primary key,emp_no int(11) NOT NULL,title varchar(50) NOT NULL,from_date date NOT NULL,to_date date DEFAULT NULL);insert into titles_test va

2021-02-04 14:17:59 102

原创 牛客在线编程练习:SQL44_简单

SQL练习:SQL44_简单题目: 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实现,直接使用update会报错了。CREATE TABLE titles_test ( id int(11) not null primary key, emp_no int(11) NOT NULL, title varchar(50) NOT NULL, from_date date NOT NULL,

2021-02-04 13:43:19 235

原创 牛客在线编程练习:SQL43_简单

SQL练习:SQL43_简单题目: 将所有to_date为9999-01-01的全部更新为NULL,且 from_date更新为2001-01-01。CREATE TABLE IF NOT EXISTS titles_test (id int(11) not null primary key,emp_no int(11) NOT NULL,title varchar(50) NOT NULL,from_date date NOT NULL,to_date date DEFAULT NULL);

2021-02-04 13:12:19 108

原创 牛客在线编程练习:SQL42_简单

SQL练习:SQL42_简单题目: 删除emp_no重复的记录,只保留最小的id对应的记录。CREATE TABLE IF NOT EXISTS titles_test (id int(11) not null primary key,emp_no int(11) NOT NULL,title varchar(50) NOT NULL,from_date date NOT NULL,to_date date DEFAULT NULL);insert into titles_test val

2021-02-04 11:26:19 100

原创 牛客在线编程练习:SQL41_中等

SQL练习:SQL41_中等题目: 构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中。CREATE TABLE employees_test(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL);CREATE TABLE audit(EMP_no INT NOT NULL,NAM

2021-02-04 11:02:38 73

原创 牛客在线编程练习:SQL40_中等

SQL练习:SQL40_中等题目: 在表中字段后添加一列存在actor表,包含如下列信息:CREATE TABLE actor ( actor_id smallint(5) NOT NULL PRIMARY KEY, first_name varchar(45) NOT NULL, last_name varchar(45) NOT NULL, last_update datetime NOT NULL);现在在last_update后面新增加一列名字为cre

2021-02-04 10:49:51 83

原创 牛客在线编程练习:SQL39_中等

SQL练习:SQL39_中等题目: 针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引。CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));create ind

2021-02-04 10:38:10 66

原创 牛客在线编程练习:SQL38_中等

SQL练习:SQL38_中等题目: 针对actor表创建视图actor_name_view,只包含first_name以及last_name两列,并对这两列重新命名,first_name为first_name_v,last_name修改为last_name_v:CREATE TABLE actor ( actor_id smallint(5) NOT NULL PRIMARY KEY, first_name varchar(45) NOT NULL, last_name v

2021-02-04 10:28:23 88

原创 牛客在线编程练习:SQL37_中等

SQL练习:SQL37_中等题目: 注:在 SQLite 中,除了重命名表和在已有的表中添加列,ALTER TABLE 命令不支持其他操作,mysql支持ALTER TABLE创建索引CREATE TABLE actor ( actor_id smallint(5) NOT NULL PRIMARY KEY, first_name varchar(45) NOT NULL, last_name varchar(45) NOT NULL, last_update dat

2021-02-04 10:07:33 66

原创 牛客在线编程练习:SQL36_中等

SQL练习:SQL36_中等题目: 创建一个actor_name表,并且将actor表中的所有first_name以及last_name导入该表对于如下表actor,其对应的数据为:actor_idfirst_namelast_namelast_update1PENELOPEGUINESS2006-02-15 12:34:332NICKWAHLBERG2006-02-15 12:34:33请你创建一个actor_name表,并且将actor表中的所有fi

2021-02-04 09:59:50 137

原创 牛客在线编程练习:SQL35_中等

SQL练习:SQL35_中等题目: 对于表actor插入数据,如果数据已经存在,请忽略题目已经先执行了如下语句:drop table if exists actor;CREATE TABLE actor ( actor_id smallint(5) NOT NULL PRIMARY KEY, first_name varchar(45) NOT NULL, last_name varchar(45) NOT NULL, last_update DATETIME NO

2021-02-03 22:26:09 82

原创 牛客在线编程练习:SQL34_简单

SQL练习:SQL34_简单题目: 对于表actor批量插入数据题目已经先执行了如下语句:drop table if exists actor;CREATE TABLE actor ( actor_id smallint(5) NOT NULL PRIMARY KEY, first_name varchar(45) NOT NULL, last_name varchar(45) NOT NULL, last_update DATETIME NOT NULL)请你

2021-02-03 22:18:39 115

原创 牛客在线编程练习:SQL33_中等

SQL练习:SQL33_中等题目: 创建一个actor表,包含如下列信息列表类型是否为NULL含义actor_idsmallint(5)not null主键idfirst_namevarchar(45)not null名字last_namevarchar(45)not null姓氏last_updatedatenot null日期题解CREATE TABLE actor ( actor_id smallint(5) not

2021-02-03 22:07:30 99 1

原创 牛客在线编程练习:SQL32_简单

SQL练习:SQL31_简单题目: 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分注:sqllite,字符串拼接为 || 符号,不支持concat函数,mysql支持concat函数CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name`

2021-02-03 21:52:12 112

原创 牛客在线编程练习:SQL30_中等

SQL练习:SQL30_中等题目: 你能使用子查询的方式找出属于Action分类的所有电影对应的title,description吗CREATE TABLE IF NOT EXISTS film ('film_id' smallint(5) NOT NULL DEFAULT '0','title' varchar(255) NOT NULL,'description' text,PRIMARY KEY ('film_id'));CREATE TABLE category ('categ

2021-02-03 21:43:42 93

原创 牛客在线编程练习:SQL29_中等

SQL练习:SQL29_较难题目: 使用join查询方式找出没有分类的电影id以及名称CREATE TABLE IF NOT EXISTS film ('film_id' smallint(5) NOT NULL DEFAULT '0','title' varchar(255) NOT NULL,'description' text,PRIMARY KEY ('film_id'));CREATE TABLE category ('category_id' tinyint(3) NO

2021-02-03 16:44:49 95

原创 牛客在线编程练习:SQL28_较难

SQL练习:SQL28_较难题目: 查找描述信息(film.description)中包含robot的电影对应的分类名称(category.name)以及电影数目(count(film.film_id)),而且还需要该分类包含电影总数量(count(film_category.category_id))>=5部CREATE TABLE IF NOT EXISTS film ('film_id' smallint(5) NOT NULL DEFAULT '0','title' varchar(

2021-02-03 15:57:52 145

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除