
每日一练
debimeng
这个作者很懒,什么都没留下…
展开
-
【SQL35】编号为 '3' 的人是编号为 '1','2' 和 '4' 的好友,所以他总共有 3 个好友,比其他人都多
在 微信 或者 QQ这样的社交应用中,人们经常会发好友申请也会收到其他人的好友申请。表 request_accepted 存储了所有好友申请通过的数据记录,其中, requester_id 和 accepter_id 都是用户的编号。写一个查询语句,求出谁拥有最多的好友和他拥有的好友数目。对于上面的样例数据,结果为:注意:保证拥有最多好友数目的只有 1 个人。好友申请只会被接受一次,所...原创 2020-02-17 19:49:39 · 364 阅读 · 0 评论 -
【SQL34】计算至少连续两天登录的玩家数,把这个数字除以玩家总数
编写一个SQL查询,报告在首次登录后第二天再次登录的玩家的分数,四舍五入到小数点后两位。换句话说,你需要从首次登录日期开始计算至少连续两天登录的玩家数,把这个数字除以玩家总数。查询结果格式如下所示:Activity 表:Result 表:Result 表:解释:只有ID为1的玩家在第一天登录后才重新登录,所以答案是1/3=0.33解决:SELECT round((...原创 2020-02-16 19:59:11 · 1389 阅读 · 0 评论 -
【SQL】查询部门有2个人或以上员工的部门号
查询部门有2个人或以上员工的部门号id payno1 lisi1 zhangsan2 wangmeng3 zhaoliu3 wuxia3 mengfang4 guodaxia5 guofurong结果如下:id13解决:方法一:SELECT DI...原创 2020-02-15 16:27:35 · 4339 阅读 · 0 评论 -
【SQL33】求付款最早和最小付款的信息
有如下一张表Ordersid pdate payno1 2019-11-02 51 2019-11-02 31 2019-11-03 11 2019-11-03 32 2019-11-09 12 2019-11-09 4...原创 2020-02-14 19:22:45 · 372 阅读 · 0 评论 -
【SQL32】行转列
行转列怎么把下面的表tb_tabyear month amount2017 1 1.12017 2 1.22017 3 1.32017 4 1.42018 1 2.12018 2 2.22018 3 2.32018 4 2...原创 2020-02-13 19:17:23 · 222 阅读 · 0 评论 -
【SQL30】使用sum() over()求每个玩家累计玩数量
有如下一张activity表player_id device_id event_date games_played1 2 '2016-01-01' 51 2 '2016-05-02' 61 3 '2017-07-25' 13 ...原创 2020-02-12 20:04:29 · 894 阅读 · 0 评论 -
【SQL29】购买了所有产品(5 和 6)的客户的 id
写一条 SQL 查询语句,从 Customer 表中查询购买了 Product 表中所有产品的客户的 id。示例:Customer 表:customer_id product_key1 52 63 53 61 ...原创 2020-02-11 19:32:29 · 1710 阅读 · 1 评论 -
【SQL28】查询1课程比2课程成绩高的学生的信息及课程分数
有如下几张表:Studentsid sname sage sex1 '赵雷' '1990-01-01' '男'2 '钱电' '1990-01-01' '男'3 '孙风' '1990-01-01' '男'4 '李云' '1990-01-01'...原创 2020-02-10 19:35:12 · 8706 阅读 · 1 评论 -
【SQL27】查询既学过'001'课程也学过'003'号课程的学生ID
有一张成绩表SC,表结构为SC(sid,cid,course),分部对应是学生ID,课程ID和学生成绩,有如下测试数据sid cid course1 001 671 002 891 003 942 ...原创 2020-02-09 20:11:50 · 3450 阅读 · 0 评论 -
【SQL26】查询订单数最多的客户(客户有可能超过一个)
表 orders 定义如下:order_id(订单编号),customer_id(客户编号),order_date(下单日期)有如下几条记录:order_id customer_id order_date1 1 2019-06-242 2 ...原创 2020-02-08 19:56:09 · 6913 阅读 · 0 评论 -
【SQL25】查询出每门课都大于等于80分的学生姓名
用一条SQL 语句 查询出每门课都大于80分的学生姓名,表格样式及数据如下studentname course score张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 ...原创 2020-02-07 20:53:07 · 1410 阅读 · 0 评论 -
【SQL23】查询出每个项目中经验最丰富(experience_years最大)的员工
查询出每个项目中经验最丰富(experience_years最大)的员工有如下两张表projectpro_id emp_id1 11 21 32 12 4employeeemp_id name exp_year1 ...原创 2020-02-06 19:15:44 · 527 阅读 · 0 评论 -
【SQL20_2】查询第二高的薪水
查询第二高的薪水编写一个 SQL 查询,获取Employee 表中第二高的薪水(Salary)id salary1 1002 2003 300例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。结果如下:200解决:另一种思路,首先求出除了第一名...原创 2020-02-04 13:02:35 · 624 阅读 · 0 评论 -
【SQL20】查询第二高的薪水
查询第二高的薪水编写一个 SQL 查询,获取Employee 表中第二高的薪水(Salary)id salary1 1002 2003 300例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。结果如下:200解决:首先来看看常用排序函数之间的数...原创 2020-02-03 19:03:01 · 1145 阅读 · 0 评论 -
【SQL19】查询出'001'课程分数大于'002'课程分数的学生学号
有一张成绩表SC,表结构为SC(sid,cid,course),分部对应是学生ID,课程ID和学生成绩,有如下测试数据查询结果格式如下所示:scsid cid course1 001 671 002 891 003 942 001 952 002 ...原创 2020-02-01 19:36:48 · 5141 阅读 · 0 评论 -
【SQL18】编写一个SQL查询,用于选择每种销售产品的第一年的产品ID、年份、数量和价格
编写一个SQL查询,用于选择每种销售产品的第一年的产品ID、年份、数量和价格查询结果格式如下所示:sales_tablesale_id product_id year quantity price1 100 2008 10 50002 100 ...原创 2020-01-31 14:00:33 · 1814 阅读 · 0 评论 -
【SQL】从一张考勤表tb_cwa中找出员工每天的上班、下班打卡具体时间---第二篇
继上一篇https://blog.youkuaiyun.com/debimeng/article/details/104113932的思考假如该公司存放的打卡时间不仅仅上下班两次打卡,还包含了中午外出吃饭打的卡,就是说每个人每天打卡次数大于2次;这样的话上一篇写的SQL就获取不到准确的上下班时间,考勤表相关字段如下下:ID、NAME、NO、TIMEID NAME NO ...原创 2020-01-30 18:12:58 · 1657 阅读 · 1 评论 -
【SQL】从一张考勤表tb_cwa中找出员工每天的上班、下班打卡具体时间
从一张考勤表tb_cwa中找出员工每天的上班、下班打卡具体时间考勤表相关字段如下下:ID、NAME、NO、TIMEID NAME NO TIME1 zhangsan 1001 2020-01-01 08:34:402 lisi 1002 2020-01-01 08:39:293 wa...原创 2020-01-30 12:21:01 · 1828 阅读 · 1 评论 -
SQL获取用户第一次登陆的设备号
SQL获取用户第一次登陆的设备号有如下一张表p_id d_id event_date g_p1 2 2019-08-01 51 2 2019-09-01 82 3 2020-01-01 13 1 2019-03-01 93 5 2020-01-...原创 2020-01-28 11:35:25 · 1453 阅读 · 0 评论 -
【每日一练】Oracle concat函数
Oracle concat函数函数:concat语法:concat(string1,string2)说明:string1、string2为字符串或数字用途:将两个字符串连接在一起;常用于将两个字段为字符的拼接在一起栗子:两个字符串相连SELECT concat('我的名字叫:', 'Lilei') AS name FROM dual;NAME我的名字叫:Lilei一个字符跟一...原创 2019-04-22 20:02:13 · 910 阅读 · 0 评论 -
【mysql】使用变量实现类似oracle中lag函数功能
mysql使用变量实现类似oracle中的lag函数功能说明:有一个订单表,每次下单都会记录是否使用了券,现模拟一个需求,将订单表插入日志表达到记录用户上一次是否用券以及此订单是否用券的情况#--------实现:#创建表t_ordercreate table t_order(id int,name varchar(50),time date);#插入数据inser...原创 2019-07-07 11:12:50 · 2361 阅读 · 0 评论 -
【每日一练:oracle理论】oracle索引分类
Oracle索引分类逻辑上:Single column 单行索引Concatenated 多行索引Unique 唯一索引NonUnique 非唯一索引Function-based 函数索引Domain 域索引物理上:Partitioned 分区索引NonP...转载 2019-03-03 22:42:38 · 394 阅读 · 0 评论 -
【每日一练:SQL】获取tname字段最后一个#后面的字符
SQL题:用SQL语句找出test_shop表tname字段中最后一个“#”后面的字符数据如下:ID tname1 CRM0228#016#1122 CRM0228#2#04#078933 CRM0228#32#2#T#5634 CRM0228#dd解答:数据库版本:Oracle 11g--创建表create ...原创 2019-02-28 18:07:52 · 1783 阅读 · 0 评论 -
【每日一练:包】创建一个用于删除分区的包
创建一个用于删除分区的包场景:因工作中编写存储过程时经常需要用到临时表,但往临时表插入数据之前需要将原数据删除,因时常用到删除的动作,如果做成一个类似工具一样的直接调用的就更好了,免得经常敲重复的代码。解决:先创建表头,再创建包体。包头内容如下:CREATE OR REPLACE PACKAGE dw_tool_pkg IS --工具1:清空单层分区对应的分区,或清...原创 2019-03-23 16:26:27 · 157 阅读 · 0 评论 -
【每日一练:SQL】使用一条SQL求出四个球队所有比赛组合
SQL题目:一个表team,里面只有一个字段name, 一共有4条纪录,分别是a,b,c,d, 对应四个球队,现在四个球队进行比赛,用一条sql语句显示所有可能的比赛组合。解决:数据库版本:Oracle 11g--创建表和插入数据create table team(name varchar2(30));insert into team values('a');inser...原创 2019-03-12 22:22:02 · 7914 阅读 · 0 评论 -
【每日一练:SQL】oracle随机查询出10条数据
SQL题:随机查询出10条数据数据库版本:Oracle 11g解答:--创建测试数据create table tb_sales(year int,season int,sale int);--插入数据insert into tb_sales values(2017,1,11);insert into tb_sales values(2017,2,12);insert int...原创 2019-02-26 10:39:22 · 4169 阅读 · 0 评论 -
【每日一练:SQL】行转列的运用,统计每年每个季度的销售额(同一行显示)
SQL题:行转列的运用将下面的数据年 季度 销售量2017 1 112017 2 122017 3 132017 4 142018 1 212018 2 222018 3 232018 ...原创 2019-02-26 10:01:30 · 3313 阅读 · 0 评论 -
【每日一练:SQL】求所有数学课程成绩大于语文课程成绩的学生学号
SQL题:求所有数学课程成绩大于语文课程成绩的学生学号数据如下:1,1,语文,732,1,数学,553,2,语文,774,2,数学,885,3,语文,986,3,数学,657,4,语文,788,4,数学,69数据说明:1,1,语文,43数据格式分别为id、学号、课程、成绩解答:数学成绩大于语文成绩数据库版本:Oracle 11g--创建表create...原创 2019-02-25 20:56:23 · 4825 阅读 · 0 评论 -
【每日一练:rownum】Oracle的rownum的运用和分析
思考题:Oracle的rownum的运用和分析,回答下面的问题:1.rownum是什么?有一个表test_a有如下的数据id tname1 Lisi2 Zhangsan3 William4 Tom5 Sammer6 Zhaoliu7 Wangwu8 Liugang10 Wangmeng2.请问...原创 2019-03-01 17:04:37 · 299 阅读 · 0 评论 -
【每日一练:SQL】where子句使用列别名的解答
SQL题:查看下面的SQL,select sale as saleroom , comm as commission from tb_empwhere saleroom > 3000;请问是否能执行成功?请给出理由。解答:不能;因为列的别名不能在where条件使用,具体原因:where子句比select子句先执行,在where执行前列的别名还没有...原创 2019-03-01 08:31:48 · 1134 阅读 · 0 评论 -
【每天一练:Hive SQL】求单月访问次数和总访问次数
HiveSQL题:求单月访问次数和总访问次数数据如下:A,2015-01,5A,2015-01,15B,2015-01,5A,2015-01,8B,2015-01,25A,2015-01,5A,2015-02,4A,2015-02,6B,2015-02,10B,2015-02,5A,2015-03,16A,2015-03,22B,2015-03,23B,2015-...原创 2019-02-24 16:22:58 · 2359 阅读 · 0 评论 -
【每日一练:逻辑题】使用一个天平找8个球中其中一个重量不一致的球
逻辑题:有一个天平和8个球,7个的重量一样,有一个与其他的重量不一致(并不知道比其他7个重还是轻),求需要称多少次才能找到重量不一致的球?解答:首先得明确知道那个重量不一致的球并不知道是过重还是过轻!!!解决方法采用排除法!!!假设给八个球进行编号,分别为:12345678;第一次称:将八个球每两两进行分组,分为4个组,假设12为A组、34为B组、56为C组、78为D组;将...原创 2019-02-23 23:26:57 · 21047 阅读 · 6 评论 -
【每日一练:SQL】Hive SQL求每一年最大气温的日期+温度
Hive SQL求每一年最大气温的日期+温度HIVE SQL题:求每一年最大气温的日期+温度,具体数据如下:2014010114201401021620140203172014010410201403050620120106092012010732201201081220120109192012011023200102011620010102122001050310...原创 2019-02-23 22:37:59 · 2230 阅读 · 0 评论 -
【每日一练:SQL】Oracle使用一个SQL查询出每门课程的成绩都大于80分的学生姓名
Oracle使用一个SQL查询出每门课程的成绩都大于80分的学生姓名SQL题:使用一个SQL查询出每门课程的成绩都大于80分的学生姓名表名为tb_grade,字段和数据如下name course score张三 语文 94张三 数学 84李四 语文 76李四 数学 83王五 ...原创 2019-02-23 10:00:20 · 5353 阅读 · 1 评论 -
【每日一练:SQL】oracle分页查询,每页查询10条数据
SQL题:分页查询,每页查询10条数据数据库版本:Oracle 11g解答:--创建测试数据create table tb_sales(year int,season int,sale int);--插入数据insert into tb_sales values(2017,1,11);insert into tb_sales values(2017,2,12);inse...原创 2019-02-26 11:29:09 · 7869 阅读 · 0 评论 -
【每日一学:存储过程声明】oracle存储过程常用声明方式
oracle存储过程常用声明方式1.直接声明解释:将变量定义为指定的数据类型;格式:变量名 数据类型栗子:v_name varchar2(30)2.使用%type声明解释:变量的数据类型与指定表的字段类型一样格式:变量名 表名.字段名%type栗子:v_name t_adress.name%type3.使用%rowtype声明解释:变量的数据类型与指定表的行记录(...转载 2019-03-05 18:53:01 · 1174 阅读 · 0 评论 -
【每日一练:SQL】、6-1:六道经典SQL题:身高在170cm以上,考试不及格课程在3门以下(不包括3门)平均成绩在60分以上
6-1:六道经典SQL题学生表S SNO 学号, Sname 姓名, Class 班级, height 身高课程表C CNO 课程号, CName 课程名, CPreNO 预修课程编码成绩表SC CNO 课程号, SNO 学号, SCgrade 成绩1、体育生选拔,要求身高在170cm以上,考试不及格课程在3门以下(不包...原创 2019-03-16 10:49:09 · 873 阅读 · 0 评论 -
【每日一练:SQL】rowunm:查询表test第5-10条记录
oracle查询表第5-10条记录SQL题目:存在表tb_test0311(id,name),要根据字段id排序后取第5-10条记录,请给出sql解决:数据库版本:Oracle 11g--创建表和插入数据create table tb_test0311(id int, name varchar2(30));insert into tb_test0311 values(1,...原创 2019-03-11 18:10:11 · 974 阅读 · 0 评论 -
【每日一练:SQL】写一条SQL统计连续三个月金额大于0及每个月的金额
写一条SQL统计连续在三个月金额大于0及展现每个月的金额需求:下面是表FEE,字段是month(月份),service_id(电话号码),fee(出帐金额),请参看下面要求: Month service_id fee 201801 13012345678 50 201802 13012345678 60 2018...原创 2019-03-07 20:28:48 · 10660 阅读 · 0 评论 -
【每日一练:SQL】oracle查询test_0309表当天所有的记录
SQL:查询test_0309表当天所有的记录注:表时间字段为time,格式为2019-3-9 00:00:00解决:数据库版本:Oracle 11gSQL语句:--方法一:对表字段不使用函数(推荐使用)select * from test_0309 where time >= trunc(sysdate) and time < trunc(sysd...原创 2019-03-09 19:48:25 · 278 阅读 · 0 评论