SQL
惜木兮
这个作者很懒,什么都没留下…
展开
-
SQL | 游戏行业部分指标
游戏数据后台设有“登录日志”和“登出日志”两张表。其中,“角色id”字段唯一识别玩家。游戏开服前两天(2022-08-13至2022-08-14)的登录日志和登出日志部分数据如下登录日志登出日志1、开服首日(2022-08-13),游戏的DAU和次日留存率select count(distinct t1.角色id) as DAU, count(distinct t2.角色id)/count(distinct t1.角色id) as 次日留存率from (select * from 登录日志原创 2022-05-30 16:33:04 · 584 阅读 · 0 评论 -
SQL | SQL部分知识总结脑图(排序、过滤、CASE WHEN、函数、分组、增删改、联结等)
SQL | SQL部分知识总结脑图(排序、过滤、CASE WHEN、函数、分组、增删改、联结等)原创 2022-04-25 10:59:21 · 288 阅读 · 0 评论 -
SQL | 阿里天池-SQL综合练习题-10道经典题目
阿里天池,10道经典题目练习原创 2022-03-07 13:49:49 · 918 阅读 · 0 评论 -
SQL | 窗口函数 | 连续登录问题的升级版
题目:请使用SQL对B列处理,形成C列,B列值不变时,则C列累计计数,B列值变化,则C列重新开始计数,如下图:A B2010 12011 12012 12013 02014 02015 12016 12017 12018 02019 0输出结果:A B C2010 1 12011 1 22012 1 32013 0 12014 0 22015 1 12016 1 22017 1 32018 0 12019 0 2准备数据(1)创建表create原创 2022-02-08 18:12:38 · 319 阅读 · 0 评论 -
SQL | 多表连接 | 销售订单+产品明细+销售网点表
创建表”销售订单表”记录了销售情况,每一张数据表示哪位顾客、在哪一天、哪个网点购买了什么产品,购买的数量是多少,以及对应产品的零售价create table if not exists `销售订单表`(`订单号` VARCHAR(50) primary key,`顾客ID` VARCHAR(50),`交易日期` date,`交易网点` VARCHAR(50),`产品` VARCHAR(50),`销售数量` INT,`零售价` INT);“产品明细表”记录了公司产品的详细信息crea原创 2021-12-10 18:26:39 · 3311 阅读 · 0 评论 -
SQL | 行列转换 | 牛客SQL86 实习广场投递简历分析(三)
题目https://www.nowcoder.com/practice/83f84aa5c32b4cf5a75558d02dd7743c?tpId=82&tags=&title=&difficulty=0&judgeStatus=0&rp=1思路按年份分别求出2025年和2026年每个月的收到的简历数,两表左连接,对列进行合并select t1.*,t2.second_year_mon,t2.second_year_cntfrom (select job原创 2021-10-08 18:26:37 · 212 阅读 · 0 评论 -
SQL | 多表连接/窗口函数 | 牛客SQL79/80/81 牛客的课程订单分析(三)/(四)/(五)
题目https://www.nowcoder.com/practice/4ae8cff2505f4d7cb68fb0ec7cf80c57?tpId=82&&tqId=37917&rp=1&ru=/activity/oj&qru=/ta/sql/question-ranking思路第一种,不使用窗口函数select o1.*from order_info o1 inner join (select user_id from order_info wh原创 2021-10-08 12:09:16 · 130 阅读 · 0 评论 -
SQL | 中位数 | 牛客SQL75/76 考试分数(四)/(五)
中位数原创 2021-09-27 14:22:02 · 223 阅读 · 0 评论 -
SQL | 表自连接 | 每个日期登录新用户个数
题目https://www.nowcoder.com/practice/e524dc7450234395aa21c75303a42b0a?tpId=82&tqId=35081&rp=1&ru=%2Factivity%2Foj&qru=%2Fta%2Fsql%2Fquestion-ranking思路select l1.date,count(distinct case when l2.user_id IS null then l1.user_id else null end原创 2021-09-17 17:54:58 · 244 阅读 · 0 评论 -
SQL | limit | 分页查询employees表,每5行一页,返回第2页的数据
题目https://www.nowcoder.com/practice/f24966e0cb8a49c192b5e65339bc8c03?tpId=82&tqId=29822&rp=1&ru=%2Factivity%2Foj&qru=%2Fta%2Fsql%2Fquestion-ranking分页查询employees表,每5行一页,返回第2页的数据CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_原创 2021-09-09 17:26:03 · 225 阅读 · 0 评论 -
SQL | 函数 |拼接concat()/concat_ws()/group_concat()
函数 |拼接concat()/concat_ws()/group_concat()原创 2021-09-09 11:03:43 · 1118 阅读 · 0 评论 -
SQL | 函数 | 截取right()/left()/substring()/substring_index()
截取right()/left()/substring()/substring_index()函数用法原创 2021-09-09 10:31:24 · 1236 阅读 · 0 评论 -
SQL | 函数 | lenght()/replace()
SQL | 函数 | lenght()/replace()原创 2021-09-09 09:31:38 · 471 阅读 · 0 评论 -
SQL | UPDATE | 将所有获取奖金的员工当前的薪水增加10%
update在需要多表连接时的使用原创 2021-09-08 17:02:24 · 3792 阅读 · 0 评论 -
SQL | replace()函数
语法replace(object,search,replace)示例https://www.nowcoder.com/practice/2bec4d94f525458ca3d0ebf3bc8cd240?tpId=82&tqId=29809&rp=1&ru=%2Factivity%2Foj&qru=%2Fta%2Fsql%2Fquestion-ranking将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用r原创 2021-09-08 11:26:23 · 447 阅读 · 0 评论 -
SQL | 多表连接 I 查找描述信息中包含robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部
题目https://www.nowcoder.com/practice/3a303a39cc40489b99a7e1867e6507c5?tpId=82&&tqId=29780&rp=1&ru=/activity/oj&qru=/ta/sql/question-ranking思路第一次写成这样:SELECT c.name,COUNT(fc.film_id)FROM film_category fc LEFT JOIN film f ON fc.film_i原创 2021-08-30 11:23:55 · 405 阅读 · 0 评论 -
SQL | 子查询 | 查找薪水排名第二多的员工
题目https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719一个员工表employees简况如下:有一个薪水表salaries简况如下:请你查找薪水排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不能使用order by完成,以上例子输出为:思路1、不能使用order by,窗口函数rank() over()不能在此使用2、考虑到薪水可能有相同的,要先找到第二多的薪原创 2021-08-12 18:13:55 · 1478 阅读 · 0 评论 -
sql | UNION/ CASE WHEN | 用户行为分析
题目现有用户订单表、用户收藏表。用户订单表:记录用户id、购买的商品id、用户下单的时间及商品的种类。用户收藏商品表:记录用户id、用户收藏的商品id及收藏时间。请用一句sql语句得出以下查询结果,得到所有用户的商品行为特征,用户id 商品id 已购买 购买未收藏 收藏未购买 收藏且购买(是为1,否为0)思路1、创建表CREATE TABLE IF NOT EXISTS `用户订单表`(`流水号` INT,`用户id` INT,`商品id` INT,`下单时间` TIMESTAM原创 2021-06-23 18:27:34 · 217 阅读 · 0 评论 -
SQL | 窗口函数/多表连接 | 除去最高、最低值后的平均值
题目薪水表salary2- 员工的编号emp_id- 所在部门编号dept_id- 薪水salary查询出每个部门除去最高、最低薪水后的平均薪水,并保留整数思路1、创建表CREATE TABLE IF NOT EXISTS salary2(emp_id VARCHAR(10),dept_id INT,salary INT );2、插入数据INSERT INTO salary2 VALUES('10001',1,60117), ('10002',2,92102)原创 2021-06-23 12:46:04 · 704 阅读 · 0 评论 -
SQL | 时间函数timestampdiff | 课程复购用户
“课程订单表”里记录了某在线教育App的用户购买课程的信息。课程订单表:`用户id` `购买时间` `课程类型` `消费金额` 用SQL求出下表:日期当日首次购买用户数此月复购用户数第三月复购用户数第四月复购用户数第五月复购用户数第六月复购用户数第七月复购用户数…第二十月复购用户数(1)创建表CREATE TABLE IF NOT EXISTS `课程订单表`(`用户id` VARCHAR(50),`购买时间` DATE,`课程类型` INT,`消原创 2021-06-21 00:55:21 · 204 阅读 · 0 评论 -
SQL | 多表连接/CASE WHEN | 房产行业
题目“成交订单表”里记录了某房产平台(类似链家、贝壳等)每日房屋成交的明细。成交价签约经纪人系统号签约经纪人姓名签约经济人门店签约经纪人门店名称客源编码成交客源渠道签约时间房屋用途协议id字段“成交客源渠道”中的值是“客源角色人”、“业主线上委托”、“”表示线下渠道,其余的成交客源渠道是线上。1.当月截止昨天二手线上成交单量占比(含车位)>=50%的门店可获奖;(线上成交占比=线上成交单量/总成交单量)2.符合获奖条件的门店的第1单线上成交可获得200贝壳币原创 2021-06-19 20:44:57 · 691 阅读 · 0 评论 -
SQL | 多表连接 | 品牌、品类、销售额
品牌表brands- brand_id:品牌id- brand_name:品牌名品类表categories- category_id:品类id- category_name:品类名月销售统计表sales- datetime1:月份- brand_id:品牌id- category_id:品类id- ecommerce_platform:电商平台- sales:销售额1、创建表CREATE TABLE IF NOT EXISTS brands(brand_id INT,br原创 2021-06-16 17:20:35 · 782 阅读 · 0 评论 -
SQL | 部分时间函数 | 打车问题
order订单信息表 里记录了巴西乘客使用打车软件的信息,包括订单呼叫、应答、取消、完单时间。-order_id:订单ID,呼叫订单识别号-passenger_id:乘客ID,乘客识别号-call_time:呼叫时间,乘客从应用上发出需要用车的请求的时间点(北京时间)-grab_time:应答时间,司机点击接单的时间点(北京时间)-cancel_time:取消时间,司机或乘客取消订单的时间(北京时间)-finish_time:完单时间,司机点击到达目的地的时间点(北京时间)注意:(1)表原创 2021-06-10 11:24:44 · 326 阅读 · 0 评论 -
SQL | 窗口函数 | 查找N%的数据
剔除访问次数前20%的用户后,每类用户的平均访问次数。用户访问次数表visit_view,用户编号uid用户类型utype访问量uvisit1、创建表(1)创建表CREATE TABLE IF NOT EXISTS visit_view(uid INT,utype VARCHAR(255),uvisit INT);(2)插入数据INSERT INTO visit_view VALUES(10,'A',352), (6,'C',209), (7,'原创 2021-06-01 10:35:38 · 145 阅读 · 0 评论 -
SQL | 多表连接 | 红包领取情况
红包领取情况active_user用户活跃表 记录了用户的登录信息,包括用户id uid用户登录日期 logindate是否是新用户(如果是新注册的用户值为1;如果是老用户,值为0)new_userreceive_red_packets领取红包表 记录了用户领取红包的信息,包括抢红包日期 receive_date抢红包时间 receive_datetime用户ID uid领取红包金额 money1、创建表CREATE TABLE IF NOT EXISTS active_user原创 2021-05-31 14:54:37 · 372 阅读 · 0 评论 -
MySQL | 复合主键、外键创建
复合主键为一个表中多个主键来确定数据的唯一性。CREATE TABLE IF NOT EXISTS active_user(logindate DATE,uid VARCHAR(225),new_user INT,PRIMARY KEY(logindate,uid));## 外键分开写会报错mysql> CREATE TABLE IF NOT EXISTS receive_red_packets( -> receive_date DATE, -> rece原创 2021-05-21 15:45:06 · 2437 阅读 · 1 评论 -
SQL | 多表连接 | 用户满意度/非禁止用户的取消率
一、用户满意度satisfaction表记录了教师和学生对课程的满意程度。satisfaction列里是老师和学生对课程的评价,其中“是”表示教师和学生都满意。satisfaction表: teacher_id:老师编号 student_id:学生编号 satisfaction:是否满意user表记录了学校教师和学生的信息。 user表: id:编号,主键,包括老师和学生的编号 insystem:是否在系统 role:角色两个表的关系:satisfaction表的stude原创 2021-05-19 18:45:00 · 337 阅读 · 1 评论 -
SQL | N日留存数/留存率
分析手机中的应用(相机)某日活跃用户在后续的一周内的留存情况计算次日留存用户数,3日留存用户数,7日留存用户数,及对应留存率字段描述 uid:用户id,用户唯一标识 appname:应用名称,手机中某个应用,例如相机、QQ、微信等 usetime:启动时长,某一天中使用了多长时间,分钟 usenumber:启动次数,某一天中启动了多少次 logindate:登录时间,使用手机的时间1、创建表CREATE TABLE IF NOT EXISTS user_behavior_test(ui原创 2021-05-18 17:05:51 · 1478 阅读 · 0 评论 -
SQL | 多表连接 | 找出最小的N个数
student表: 姓名name,学号stu_id,班级class,入学时间date1,年龄age,专业majorscore1表:学号stu_id,课程course_id,分数score筛选出2017年入学的“计算机”专业年龄最小的3位同学名单(姓名、年龄)统计每个班同学各科成绩平均分大于80分的人数和人数占比1、创建表CREATE TABLE IF NOT EXISTS student(name VARCHAR(10),stu_id VARCHAR(10),class VARCHAR(10原创 2021-05-17 18:35:58 · 600 阅读 · 0 评论 -
SQL | 窗口函数/表连接 | 找出所有比前一天(昨天)营业额更高的数据
请找出所有比前一天(昨天)营业额更高的数据(1)创建表CREATE TABLE IF NOT EXISTS daily_sales(id INT PRIMARY KEY AUTO_INCREMENT,date1 DATE,sales INT);(2)插入数据INSERT INTO daily_sales VALUES(1,'2021-3-1',97), (2,'2021-3-2',87), (3,'2021-3-3',88), (4,'原创 2021-05-17 18:19:41 · 1703 阅读 · 0 评论 -
SQL | 多表连接 | 薪水涨幅
一、查找当前所有雇员入职以来的薪水涨幅,给出雇员编号以及其对应的薪水涨幅,并按照薪水涨幅进行升序。(注:薪水表中结束日期为2014-5-1的才是当前员工,否则是已离职员工)1、创建表# 表employeeCREATE TABLE IF NOT EXISTS employee(emp_id INT PRIMARY KEY AUTO_INCREMENT,birthday DATE,name VARCHAR(10),sex VARCHAR(10),hiredate DATE);# 表sal原创 2021-05-12 09:43:53 · 544 阅读 · 0 评论 -
SQL | 窗口函数 | 名次
一、编写sql语句实现每班前三名,分数一样并列,同时求出前三名按名次排序的分差1、创建表CREATE TABLE IF NOT EXISTS stu(Stu_no int,class int,score int);alter table stu change column Stu_no stu_no int;2、插入数据INSERT INTO stu VALUES(1,1901,90);INSERT INTO stu VALUES(2,1901,90);INSERT INTO stu原创 2021-05-07 16:28:36 · 961 阅读 · 0 评论 -
SQL | 窗口函数 | 连续登录、连续得分
排序函数:ROW_NUMBER() OVER() 按照从上至下的顺序,连续排序,没有并列名次,1,2,3,4…RANK() OVER() 有并列名次,但是名次是不连续的,1,2,2,4…DENSE_RANK() OVER() 有并列名次,名次是连续的,1,2,2,3…一、连续7天登录的总人数1、创建表CREATE TABLE IF NOT EXISTS login(uid INT,dt DATE,login_status INT)ENGINE=InnoDB DEFAULT CHARSET原创 2021-05-06 17:52:25 · 478 阅读 · 0 评论 -
SQL | 窗口函数 | 累计求和问题
一、每个用户截止到每月为止的最大单月访问次数和累计到该月的总访问次数1、创建表CREATE TABLE IF NOT EXISTS visits(userid VARCHAR(10),datetime1 DATETIME,visits INT)ENGINE=InnoDB DEFAULT CHARSET=utf8;2、插入数据INSERT INTO visits VALUES('A','2021-01-03 14:59:43',5);INSERT INTO visits VALUES('A'原创 2021-05-06 16:00:17 · 3867 阅读 · 0 评论 -
SQL | 窗口函数 | 删选出满足条件的连续多行
题目表:Stadium+---------------+---------+| Column Name | Type |+---------------+---------+| id | int || visit_date | date || people | int |+---------------+---------+visit_date 是表的主键每日人流量信息被记录在这三列信息中:序号 (id)、日期原创 2020-11-10 15:45:54 · 979 阅读 · 0 评论 -
SQL | j奇偶判断 | 换座位
题目小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。其中纵列的 id 是连续递增的小美想改变相邻俩学生的座位。你能不能帮她写一个 SQL query 来输出小美想要的结果呢?示例:+---------+---------+| id | student |+---------+---------+| 1 | Abbot || 2 | Doris || 3 | Emerson |原创 2020-11-06 15:07:44 · 377 阅读 · 0 评论 -
SQL | 表连接/窗口函数 | 部门工资前三高的员工
题目Employee 表包含所有员工信息,每个员工有其对应的工号 Id,姓名 Name,工资 Salary 和部门编号 DepartmentId 。+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-------+--------+--------------+| 1 | Joe | 85000 | 1 || 2 | Henry | 80000 |原创 2020-11-04 14:47:46 · 1030 阅读 · 0 评论 -
SQL | 表连接 | 删除重复的电子邮箱
题目编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。+----+------------------+| Id | Email |+----+------------------+| 1 | john@example.com || 2 | bob@example.com || 3 | john@example.com |+----+------------------+Id 是这个表的主键。例如原创 2020-11-03 10:38:31 · 224 阅读 · 0 评论 -
SQL | 1、基本构成和用法
原创 2020-03-09 14:47:23 · 84 阅读 · 0 评论