日记-20221117
Clyde Jin
2022-11-17
54

今天又整理了一些SQL题目,

把“简单”那一章的题目过了一遍

其实也不简单。

在博客上也分享一下吧,

说不定有学SQL Server的人能看到。

 


— 如果在自己的测试DB跑的话,可以跑一下注释的脚本

/* CREATE TABLE competition_list( team_name NVARCHAR(8) )

INSERT INTO competition_list (team_name) VALUEs (N’谁与争锋队’) ,(N’必胜队’) ,(N’乘风破浪队’) ,(N’群英汇队’) ,(N’梦之队’) / –题目1:比赛名单整理 –问题:每个参赛队伍都会和其他参赛队伍开展一次组队比赛,要求输出两两参赛队伍的所有比赛情况组合 –(两者分别为队伍A和队伍B),并按队名依次升序排列 — select from competition_list –结果 –队伍 A 队伍 B –乘风破浪队 必胜队 –乘风破浪队 梦之队 –乘风破浪队 群英汇队 –乘风破浪队 谁与争锋队 –必胜队 梦之队 –必胜队 群英汇队 –必胜队 谁与争锋队 –梦之队 群英汇队 –梦之队 谁与争锋队 –群英汇队 谁与争锋队

SELECT a.team_name AS ‘队伍 A’ ,b.team_name AS ‘队伍 B’ FROM competition_list a INNER JOIN competition_list b ON a.team_name < b.team_name ORDER BY a.team_name, b.team_name;

/* CREATE TABLE product_promotion( commodity_id VARCHAR(8), start_date DATE, end_date DATE )

INSERT INTO product_promotion (commodity_id,start_date,end_date) VALUES (‘a001′,’2021-01-01′,’2021-01-06’) ,(‘a002′,’2021-01-01′,’2021-01-10’) ,(‘a003′,’2021-01-02′,’2021-01-07’) ,(‘a004′,’2021-01-05′,’2021-01-07’) ,(‘b001′,’2021-01-05′,’2021-01-10’) ,(‘b002′,’2021-01-04′,’2021-01-06’) ,(‘c001′,’2021-01-06′,’2021-01-08’) ,(‘c002′,’2021-01-02′,’2021-01-04’) ,(‘c003′,’2021-01-08′,’2021-01-15’); / –题目2:参与优惠活动的商品 –commodity_id商品ID,start_date商品优惠活动开始日期,end_date商品优惠活动结束日期 –问题:查询在2021年1月7日至2021年1月9日期间参与优惠活动的商品 –select from product_promotion –结果 –commodity_id –a002 –a003 –a004 –b001 –c001 –c003

select commodity_id from product_promotion where (start_date=’2021-1-9′) or(end_date>=’2021-1-7′ and end_date=’2021-1-7′ and start_date=’2021-1-7′ and end_date<='2021-1-9')

/* CREATE TABLE sold_succession( order_id INT, commodity_id VARCHAR(8) )

INSERT INTO sold_succession (order_id,commodity_id) VALUES (1,’c_001′) ,(2,’c_001′) ,(3,’c_002′) ,(4,’c_002′) ,(5,’c_002′) ,(6,’c_001′) ,(7,’c_003′) ,(8,’c_003′) ,(9,’c_003′) ,(10,’c_003′) ,(11,’c_001′); / –题目3:连续售出的商品 –问题找出连续下单大于或等于3次的商品ID –select from sold_succession –结果 –commodity_id –c_002 –c_003

SELECT commodity_id ,order_id ,LAG(order_id,2) OVER (PARTITION BY commodity_id ORDER BY order_id) AS temp FROM sold_succession order by order_id

SELECT DISTINCT commodity_id FROM ( SELECT commodity_id ,order_id ,LAG(order_id,2) OVER (PARTITION BY commodity_id ORDER BY order_id) AS temp FROM sold_succession )a WHERE order_id = temp + 2;

/* CREATE TABLE student_info( student_id INT, student_name NVARCHAR(8) )

INSERT INTO student_info (student_id,student_name) VALUEs (1,N’李明’) ,(2,N’王猛’) ,(3,N’吴丽丽’) ,(4,N’张飞’) ,(5,N’赵涛’); / –题目4:奇偶互换位置 –问题:将奇数学号和偶数学号的相邻学生调换学号。 –若最后一个是奇数学号,则该学号不参与调换,最终结果按照最新学号升序排列 –select from student_info –结果 –student_id student_name –1 王猛 –2 李明 –3 张飞 –4 吴丽丽 –5 赵涛

select case when student_id%2=1 and student_id=(select count(*) from student_info) then student_id when student_id%2=1 then student_id+1 when student_id%2=0 then student_id-1 end as student_id, student_name from student_info order by student_id

/* CREATE TABLE game_ranking( game VARCHAR(8), category VARCHAR(16), downloads INT )

INSERT INTO game_ranking (game,category,downloads) VALUES (‘A’,’puzzle’,13628) ,(‘B’,’shooting’,2830) ,(‘C’,’shooting’,1920) ,(‘D’,’action’,23800) ,(‘E’,’puzzle’,842) ,(‘F’,’shooting’,48201) ,(‘G’,’action’,4532) ,(‘H’,’puzzle’,1028) ,(‘I’,’action’,48910) ,(‘J’,’shooting’,342) ,(‘K’,’puzzle’,32456) ,(‘L’,’action’,2801) ,(‘M’,’puzzle’,1248) ,(‘N’,’action’,8756); / –题目5:热门游戏排行 –问题:查询每个类别下载量排在前两名的游戏 –select from game_ranking –结果 –category name –action I,D –puzzle K,A –shooting F,B

;with CTE as( select game,category from ( select game,category, rank() over(partition by category order by downloads desc) as rankid from game_ranking ) a where a.rankid<=2 )

SELECT B.category , LEFT(tempname, LEN(tempname) – 1) AS name FROM ( SELECT category , ( SELECT game + ‘,’ FROM CTE WHERE category = A.category FOR XML PATH(”) ) AS tempname FROM CTE A GROUP BY category ) B

/* CREATE TABLE comparative_analysis( [month] VARCHAR(8), sales_volume INT )

INSERT INTO comparative_analysis ([month],sales_volume) VALUES (‘2020-05’,834) ,(‘2020-06’,604) ,(‘2020-07’,715) ,(‘2020-08’,984) ,(‘2020-09’,1024) ,(‘2020-10’,893) ,(‘2020-11’,485) ,(‘2020-12’,890) ,(‘2021-01’,563) ,(‘2021-02’,301) ,(‘2021-03’,1145) ,(‘2021-04’,1804) ,(‘2021-05’,1493); / –题目6:商品销量同环比 –问题:统计2021年5月销量的同环比情况 –输出内容包括:sales_volume销量,year_ratio同比销量,month_ratio环比销量 –select from comparative_analysis –结果 –sales_volume year_ratio month_ratio –1493 1.790167865707 0.827605321507

select sales_volume,1.0sales_volume/year_on_year as year_ratio, 1.0sales_volume/month_on_month as month_ratio from (select [month],sales_volume, lag(sales_volume,1) over(order by [month]) as month_on_month, lag(sales_volume,12) over(order by [month]) as year_on_year from comparative_analysis ) a where [month]=’2021-05′

 

/* CREATE TABLE fresh_food( userid VARCHAR(8), app VARCHAR(30) )

INSERT INTO fresh_food (userid,app) VALUES (‘u001′,’A,B’) ,(‘u002′,’C,D,A’) ,(‘u003′,’E’) ,(‘u004′,’A’) ,(‘u005′,’F,D’) ,(‘u006′,’E,G’) ,(‘u007′,’C,B’) ,(‘u008′,’H,J’) ,(‘u009′,’J’) ,(‘u010′,’A,K,E’); / –题目7:社区生鲜App覆盖分析 –问题:查询安装了“A”App的用户人数 –SELECT FROM fresh_food; –结果 –Qty –4

select count(*) as Qty from fresh_food where app like ‘%A%’

/* CREATE TABLE group_buy( user_id VARCHAR(8), login_source VARCHAR(15), login_date DATE, order_count INT )

INSERT INTO group_buy (user_id,login_source,login_date,order_count) VALUES (‘a001′,’applet’,’2021-03-20′,1) ,(‘a002′,’application’,’2021-03-20′,0) ,(‘a003′,’web’,’2021-03-21′,0) ,(‘a002′,’application’,’2021-03-21′,2) ,(‘a001′,’applet’,’2021-03-21′,4) ,(‘a003′,’application’,’2021-03-22′,1) ,(‘a001′,’applet’,’2021-03-22′,1) ,(‘a004′,’application’,’2021-03-23′,1); / –题目8:社区团购行为分析 –问题一:查询每个用户首次登陆的渠道名称 –问题二:查询用户登陆日期和累计下单数量 –select from group_buy –结果一 –user_id login_source –a001 applet –a002 application –a003 web –a004 application –结果二 –user_id login_date total_order_count –a001 2021-03-20 1 –a001 2021-03-21 5 –a001 2021-03-22 6 –a002 2021-03-20 0 –a002 2021-03-21 2 –a003 2021-03-21 0 –a003 2021-03-22 1 –a004 2021-03-23 1

select a.user_id,a.login_source from group_buy a, ( select user_id,min(login_date) as login_date from group_buy group by user_id ) b where a.user_id=b.user_id and a.login_date=b.login_date

select user_id,login_date,sum(order_count) over(partition by user_id order by login_date rows between unbounded preceding and current row) total_order_count from group_buy order by user_id,login_date

SELECT user_id ,login_date ,SUM(order_count) OVER (PARTITION BY user_id ORDER BY login_date) total_order_count FROM group_buy order by user_id,login_date

/* CREATE TABLE gmv_info( date DATE, mall_gmv INT )

INSERT INTO gmv_info (date,mall_gmv) VALUES (‘2020-11-04’,12325) ,(‘2020-11-05’,15497) ,(‘2020-11-06’,13216) ,(‘2020-11-07’,16548) ,(‘2020-11-08’,17367) ,(‘2020-11-09’,20124) ,(‘2020-11-10’,37325) ,(‘2020-11-11’,134367) ,(‘2020-11-12’,54331) ,(‘2020-11-13’,22212) ,(‘2020-11-14’,16312) ,(‘2020-11-15’,14384) ,(‘2020-11-16’,12314) ,(‘2020-11-17’,13146); / –题目9:“双11”活动的电商GMV分析 –问题:查询2020年11月11日起的一周时间内,相比7天前GMV的变化率 — select from gmv_info –结果 –date ratio –2020-11-11 990.198782961460% –2020-11-12 250.590436858746% –2020-11-13 68.069007263922% –2020-11-14 -1.426154218032% –2020-11-15 -17.176253814706% –2020-11-16 -38.809381832637% –2020-11-17 -64.779638312123%

;with CTE as( SELECT date ,mall_gmv ,(mall_gmv-LAG(mall_gmv,7) OVER (ORDER BY date )) AS gmv_diff ,100.0*(mall_gmv-LAG(mall_gmv,7) OVER (ORDER BY date )) / LAG(mall_gmv,7) OVER (ORDER BY date ) AS gmv_rate FROM gmv_info WHERE date BETWEEN ‘2020-11-04’ AND ‘2020-11-17’ )

SELECT date ,CONCAT(gmv_rate,’%’) AS ratio FROM CTE WHERE date BETWEEN ‘2020-11-11’ AND ‘2020-11-17’;

/* CREATE TABLE original_text( text_id VARCHAR(8), text_content VARCHAR(16) )

INSERT INTO original_text (text_id,text_content) VALUES (‘t001′,’!@%&’) ,(‘t002′,’‘) ,(‘t003’,’@@!&‘) ,(‘t004’,’%&$@’) ,(‘t005’,’***‘); / –题目10:统计字符出现次数 –问题:统计每条文本中符号“”出现的次数 –select * from original_text –结果 –text_id num –t001 2 –t002 1 –t003 4 –t004 1 –t005 7

SELECT text_id ,LEN(text_content) – LEN(REPLACE(text_content,’*’,”)) AS num FROM original_text;

/* CREATE TABLE website_visit( data_content VARCHAR(15) )

INSERT INTO website_visit (data_content) VALUES (‘201812011241’) ,(‘201812022493’) ,(‘201812030845’) ,(‘201812041230’) ,(‘201912012317’) ,(‘201912022520’) ,(‘201912031945’) ,(‘201912042031’) ,(‘202012013015’) ,(‘202012022914’) ,(‘202012032319’) ,(‘202012043143’); / –题目11:网站访问量分析 –字段前8位日期后4位访问量 –问题:查询每年单天最大网站访问量 –select from website_visit –结果 –Year MaxVisit –2018 2493 –2019 2520 –2020 3143

select substring(data_content,1,4) as Year,max(substring(data_content,9,4)) as MaxVisit from website_visit group by SUBSTRING(data_content,1,4)

 

/* CREATE TABLE convert_table( text_id VARCHAR(8), text_content VARCHAR(8) )

INSERT INTO convert_table (text_id,text_content) VALUES (‘t001′,’a’) ,(‘t002′,’b’) ,(‘t001′,’c’) ,(‘t002′,’d’) ,(‘t002′,’e’) ,(‘t003′,’f’); / –题目12:文本记录连接 –问题:将相同的text_id的text_content部分通过,符号拼接 –select from convert_table –结果 –text_id text_content –t001 a,c –t002 b,d,e –t003 f

SELECT B.text_id , LEFT(tempname, LEN(tempname) – 1) AS text_content FROM ( SELECT text_id , ( SELECT text_content + ‘,’ FROM convert_table WHERE text_id = A.text_id FOR XML PATH(”) ) AS tempname FROM convert_table A GROUP BY text_id ) B

/* CREATE TABLE purchase_quantity( year VARCHAR(8), quarter VARCHAR(8), amount INT )

INSERT INTO purchase_quantity (year,quarter,amount) VALUES (‘2019′,’1’,1200) ,(‘2019′,’2’,1000) ,(‘2019′,’3’,800) ,(‘2019′,’4’,1300) ,(‘2020′,’1’,1100) ,(‘2020′,’2’,950) ,(‘2020′,’3’,700) ,(‘2020′,’4’,1050); / –题目13:行列互换 –问题:将表结构转换为year 一季度 二季度 三季度 四季度 –select from purchase_quantity –结果 –year 一季度 二季度 三季度 四季度 –2019 1200 1000 800 1300 –2020 1100 950 700 1050

SELECT year ,SUM(CASE WHEN quarter = 1 THEN amount ELSE 0 END) AS ‘一季度’ ,SUM(CASE WHEN quarter = 2 THEN amount ELSE 0 END) AS ‘二季度’ ,SUM(CASE WHEN quarter = 3 THEN amount ELSE 0 END) AS ‘三季度’ ,SUM(CASE WHEN quarter = 4 THEN amount ELSE 0 END) AS ‘四季度’ FROM purchase_quantity GROUP BY year;

/* CREATE TABLE consumer_order( order_id VARCHAR(8), money INT )

INSERT INTO consumer_order (order_id,money) VALUES (‘a001′,’2000’) ,(‘a002’,4000) ,(‘a003’,6000) ,(‘a004’,2000) ,(‘a005’,4000) ,(‘a006’,3000) ,(‘a007’,2000) ,(‘a008’,4000) ,(‘a009’,5000); / –题目14:寻找符合要求的订单 –问题:按订单ID的顺序依次累加money,获取累计值与20000相差最小时对于的订单ID和最小差值 –select from consumer_order –结果 –order_id diff –a006 1000

SELECT top 1 order_id ,ABS(20000-SUM(money) OVER (ORDER BY order_id)) AS diff FROM consumer_order ORDER BY diff,order_id;

/* CREATE TABLE user_register_info( user_id VARCHAR(8), register_date DATE )

INSERT INTO user_register_info (user_id,register_date) VALUES (‘a001′,’2020-10-15’) ,(‘a002′,’2020-11-20’) ,(‘a003′,’2020-12-13’) ,(‘a004′,’2021-01-18’);

CREATE TABLE user_order_info( user_id VARCHAR(8), order_id VARCHAR(8), order_date DATE, commodity_id VARCHAR(8) )

INSERT INTO user_order_info (order_id,user_id,order_date,commodity_id) VALUES (‘o001′,’a001′,’2020-11-12′,’c005’) ,(‘o002′,’a002′,’2020-12-27′,’c003’) ,(‘o003′,’a002′,’2021-01-12′,’c003’) ,(‘o004′,’a003′,’2021-02-25′,’c001’) ,(‘o005′,’a004′,’2021-03-12′,’c004’) ,(‘o006′,’a004′,’2021-03-14′,’c005’); */

–题目15:用户购物信息统计 –第一张表为注册信息表 第二张表用户订单表 订单ID,用户ID,订单日期,商品ID –问题:查询每个用户的注册日期及其在2021年的订单总数 –select from user_register_info –select from user_order_info –结果 –user_id register_date order_2021 –a001 2020-10-15 0 –a002 2020-11-20 1 –a003 2020-12-13 1 –a004 2021-01-18 2

SELECT a.user_id ,a.register_date ,COUNT(order_id) AS order_2021 FROM user_register_info a LEFT JOIN user_order_info b ON a.user_id = b.user_id and order_date like ‘2021%’ GROUP BY a.user_id ,a.register_date;

/* CREATE TABLE user_order( user_id VARCHAR(8), payment INT, paytime DATETIME )

INSERT INTO user_order (user_id,payment,paytime) VALUES (‘a001′,500,’2021-02-01 13:25’) ,(‘a001′,800,’2021-02-03 09:10’) ,(‘b001′,150,’2021-02-03 15:18’) ,(‘a002′,90,’2021-02-05 08:10’) ,(‘a001′,1050,’2021-02-06 10:34’) ,(‘b001′,400,’2021-02-07 18:19’); / –题目16:用户收单消费金额 –问题:查找每个用户下单时间最早的订单金额 –select from user_order –结果 –user_id payment –a001 500 –a002 90 –b001 150

select b.user_id , b.payment from ( select a.user_id,a.payment, rank() over(partition by user_id order by paytime ) as RankID from user_order a ) b where RankID=1

 

/* CREATE TABLE coupon_collection( user_id VARCHAR(8), collection_date DATE )

INSERT INTO coupon_collection (user_id,collection_date) VALUES (‘u001′,’2021-05-01’) ,(‘u002′,’2021-05-01’) ,(‘u003′,’2021-05-02’) ,(‘u004′,’2021-05-02’) ,(‘u005′,’2021-05-03’);

CREATE TABLE consumption_info( user_id VARCHAR(8), consumption_date DATE )

INSERT INTO consumption_info (user_id,consumption_date) VALUES (‘u002′,’2021-04-28’) ,(‘u001′,’2021-04-29’) ,(‘u001′,’2021-05-03’) ,(‘u003′,’2021-05-05’) ,(‘u005′,’2021-05-06’) ,(‘u001′,’2021-05-08’) ,(‘u004′,’2021-05-09’) ,(‘u006′,’2021-05-09’) ,(‘u003′,’2021-05-10’) ,(‘u002′,’2021-05-10’); / –题目17:优惠券使用分析 –表一优惠券领取日期 表二消费情况 –问题:用户领取优惠券在次日生效,并在之后的7天内购物时自动生效,使用次数不限 –要求获取成功使用优惠券消费的用户及其对应的消费次数 –select from coupon_collection –select * from consumption_info –结果 –user_id num –u001 2 –u003 1 –u004 1 –u005 1

SELECT a.user_id, COUNT(collection_date) AS num FROM coupon_collection a INNER JOIN consumption_info b ON a.user_id = b.user_id WHERE DATEDIFF(day,collection_date,consumption_date) BETWEEN 1 AND 7 GROUP BY a.user_id;

/* CREATE TABLE game_login( user_id VARCHAR(8), login_time VARCHAR(25) )

INSERT INTO game_login (user_id,login_time) VALUES (‘u001′,’2021-03-01 06:01:12’) ,(‘u001′,’2021-03-01 07:14:20’) ,(‘u002′,’2021-03-01 07:20:22’) ,(‘u003′,’2021-03-01 08:22:45’) ,(‘u001′,’2021-03-01 11:10:23’) ,(‘u004′,’2021-03-01 12:00:10’) ,(‘u002′,’2021-03-01 18:03:52’) ,(‘u005′,’2021-03-01 20:10:29’) ,(‘u003′,’2021-03-01 21:11:50’); / –题目18:游戏玩家登陆情况分析 –问题一:查询在一天中多次登陆游戏的玩家及其登陆的次数 –问题二:对于在一天中多次登陆游戏的玩家,值查找当天最后一条记录 –select from game_login –结果一 –user_id num –u001 3 –u002 2 –u003 2 –结果二 –user_id login_time –u001 2021-03-01 11:10:23 –u002 2021-03-01 18:03:52 –u003 2021-03-01 21:11:50

SELECT user_id ,COUNT(date) AS num FROM ( SELECT user_id ,SUBSTRING(login_time,1,10) AS date FROM game_login ) a GROUP BY user_id,date HAVING COUNT(user_id)>1;

;with CTE as ( SELECT user_id ,COUNT(date) AS num FROM ( SELECT user_id ,SUBSTRING(login_time,1,10) AS date FROM game_login ) a GROUP BY user_id,date HAVING COUNT(user_id)>1 )

select c.user_id,c.login_time from ( select a.user_id,a.login_time,rank() over(partition by a.user_id order by login_time desc) as RankID from game_login a where exists( select b.user_id from CTE b where a.user_id=b.user_id) ) as c where c.rankID =1

/* CREATE TABLE employee_performance( employee_id VARCHAR(8), target_a INT, target_b INT, target_c INT, target_d INT, target_e INT )

INSERT INTO employee_performance (employee_id,target_a,target_b,target_c,target_d,targete) VALUES (‘u001’,9,7,9,10,6) ,(‘u002’,8,8,8,9,10) ,(‘u003’,10,10,10,9,9) ,(‘u004’,5,7,9,8,8) ,(‘u005’,7,7,5,4,6) ,(‘u006’,10,9,10,7,8) ,(‘u007’,8,7,8,9,6) ,(‘u008’,8,9,10,10,6) ,(‘u009’,5,5,6,7,6) ,(‘u010’,10,10,10,8,7); */ –题目19:员工绩效考核 –target:指标得分 –问题:根据5个指标的得分情况评选优秀员工 –要求至少4个指标分数大于8分 –查询优秀员工的ID和总分,按总分和ID排序 –select * from employee_performance –结果 –employee_id total_score –u003 48 –u010 45 –u006 44 –u002 43 –u008 43

SELECT employee_id ,total_score FROM ( SELECT employee_id ,CASE WHEN target_a>=8 THEN 1 ELSE 0 END target_a ,CASE WHEN target_b>=8 THEN 1 ELSE 0 END target_b ,CASE WHEN target_c>=8 THEN 1 ELSE 0 END target_c ,CASE WHEN target_d>=8 THEN 1 ELSE 0 END target_d ,CASE WHEN target_e>=8 THEN 1 ELSE 0 END target_e ,target_a+target_b+target_c+target_d+target_e total_score FROM employee_performance ) a WHERE (a.target_a+a.target_b+a.target_c+a.target_d+a.target_e)>=4 ORDER BY total_score DESC,employee_id;

/* CREATE TABLE product_sale( product_id VARCHAR(8), product_category VARCHAR(8), sale INT )

INSERT INTO product_sale (product_id,product_category,sale) VALUES (‘p001′,’c001’,14600) ,(‘p002′,’c001’,23300) ,(‘p003′,’c001’,8000) ,(‘p004′,’c002’,40800) ,(‘p005′,’c002’,5300) ,(‘p006′,’c003’,12900); / –题目20:找出各类别商品销量最高的商品 –问题:查询不同类别商品销量最高的商品信息 –select from product_sale –结果 –product_category product_id sale –c001 p002 23300 –c002 p004 40800 –c003 p006 12900

select a.product_category,a.product_id,a.sale from ( select product_category,product_id,sale, rank() over(partition by product_category order by sale desc) as RankID from product_sale ) as a where RankID=1

/* CREATE TABLE employee( employee_id VARCHAR(8), employee_name VARCHAR(8), employee_salary INT, department VARCHAR(8) )

INSERT INTO employee (employee_id,employee_name,employee_salary,department) VALUES (‘a001′,’Bob’,7000,’b1′) ,(‘a002′,’Jack’,9000,’b1′) ,(‘a003′,’Alice’,8000,’b2′) ,(‘a004′,’Ben’,5000,’b2′) ,(‘a005′,’Candy’,4000,’b2′) ,(‘a006′,’Allen’,5000,’b2′) ,(‘a007′,’Linda’,10000,’b3′);

CREATE TABLE department( department_id VARCHAR(8), department_name VARCHAR(8) )

INSERT INTO department (department_id,department_name) VALUES (‘b1′,’Sales’) ,(‘b2′,’IT’) ,(‘b3′,’Product’); / –题目21:找出每个不猛薪资第二高的员工 –select from employee –select * from department –结果 –employee_id employee_name employee_salary department_name –a001 Bob 7000 Sales –a004 Ben 5000 IT –a006 Allen 5000 IT

SELECT a.employee_id ,a.employee_name ,a.employee_salary ,b.department_name FROM ( SELECT * ,RANK() OVER (PARTITION BY department ORDER BY employee_salary DESC) AS ranking FROM employee ) AS a INNER JOIN department AS b ON a.department = b.department_id WHERE a.ranking = 2;

/* CREATE TABLE pk_info( request_id VARCHAR(8), accept_id VARCHAR(8), accept_date DATE )

INSERT INTO pk_info (request_id,accept_id,accept_date) VALUES (‘a001′,’a002′,’2021-03-01’) ,(‘a001′,’a003′,’2021-03-01’) ,(‘a001′,’a004′,’2021-03-02’) ,(‘a002′,’a003′,’2021-03-02’) ,(‘a005′,’a003′,’2021-03-03’) ,(‘a006′,’a001′,’2021-03-04’) ,(‘a004′,’a003′,’2021-03-05’); / –题目22:找出游戏中最活跃的用户 –表为用户对战情况表 –问题:统计对战次数最多的用户ID及其对战的次数 –select from pk_info –结果 –user_id cnt –a001 4

SELECT top 1 user_id ,COUNT(*) AS cnt FROM ( SELECT request_id AS user_id FROM pk_info UNION ALL SELECT accept_id AS user_id FROM pk_info )a GROUP BY user_id ORDER BY cnt desc

 

 

Star
Donate
日记-20221116
Previous
日记-20221118
Next

Leave a comment

Registration is not required

Clyde Jin
302 Articles
0 Comments
0 Like
Recent Posts

HiddenMerit Daily · Issue 59

📊 HiddenMerit Daily · Issue 59 Focus on Database Frontiers, Practical Insights for DBAs July 21, 2026 | 5 Selected Global Breaking News 01|Oracle Issues Urgent Warning: July 21 Release Update to Fix Large Number of High‑Risk Vulnerabilities, Immediate Deployment Recommended On July 13, Oracle issued an urgent security warning, strongly recommending that all customers running supported Oracle Database versions (including Oracle Database 19c and Oracle AI Database 26ai) immediately test and deploy the Release Update (RU) after its release on July 21. Background: New frontier AI models are significantly lowering the barrier to discovering and exploiting software vulnerabilities – these models can identify weaknesses, analyse software changes, reverse‑engineer security patches, and develop potential attack paths at unprecedented speed and scale. AI models are also becoming increasingly adept at combining multiple weaknesses across the application and data stack into complex attacks, even when individual weaknesses do not themselves pose a serious risk. As a result, protecting systems solely at the network or application layer is no longer sufficient; enterprises must protect the entire technology stack. Fixes Included in This RU: Oracle has collaborated with state‑of‑the‑art models from Anthropic and OpenAI to proactively identify and fix potential security vulnerabilities. The upcoming […]

HiddenMerit Daily · Issue 58

📊 HiddenMerit Daily · Issue 58 Focus on Database Frontiers, Practical Insights for DBAs July 20, 2026 | 5 Selected Global Breaking News 01|CAICT: Domestic Databases Enter Core System “Deep Water,” AI‑Native Leads New Industry Landscape On July 9, at the 2026 Trustworthy Database Development Conference, CAICT released the “Database Development Research Report (2026).” The report notes that domestic databases have basically completed peripheral system replacement and have officially entered the critical business system breakthrough phase. Key Data: The global database market reached $131.6 billion in 2025 (approximately RMB 894.09 billion). The Chinese database market reached $9.49 billion in 2025 (approximately RMB 64.48 billion), and is expected to reach RMB 97.974 billion by 2028, with a CAGR of 13.06%. The number of domestic database vendors has shrunk from a peak of 167 to 94, with a clear head‑concentration effect and an intensifying “Matthew effect.” AI‑Native Becomes the Main Theme: The report points out that database technology is accelerating its evolution toward the AI‑native direction, and the global database industry is entering a new phase of landscape restructuring. The role of databases is upgrading from “underlying support systems” to “core engines enabling intelligent decision‑making and business innovation.” AI agents are becoming […]

HiddenMerit Daily · Issue 56

📊 HiddenMerit Daily · Issue 56 Focus on Database Frontiers, Practical Insights for DBAs July 6, 2026 | 5 Selected Global Breaking News 01|Kingware Releases Manufacturing Scenario Database Evolution White Paper: SQL Server Replacement Enters “Deep Water” On July 5, CETC Kingware published a technical article titled “Database Evolution in Manufacturing Scenarios: How Kingware Replaces SQL Server,” pointing out that the data surge on industrial shop floors has exceeded the processing capacity of single‑node systems. Traditional database architectures that rely on vertical scaling are facing unprecedented performance challenges. Over the next 1‑3 years, manufacturing enterprises will no longer face only the “choice of replacement,” but must answer the strategic question: “How do we build an autonomous data foundation in the context of de‑IOE?” Three Paradigm Shifts: Hybrid Workloads Become the Norm: The IT architecture of modern factories is shifting from separated OLTP and OLAP to HTAP mode. The same data system must simultaneously handle tens of thousands of device instruction writes per second and minute‑level production report analysis. Distributed Architecture Becomes a Hard Requirement: When a single table exceeds 100 million rows with daily increments exceeding 1 million rows, the index maintenance cost of traditional single‑node databases rises exponentially. Autonomous […]

HiddenMerit Daily · Issue 57

📊 HiddenMerit Daily · Issue 57 Focus on Database Frontiers, Practical Insights for DBAs July 17, 2026 | 5 Selected Global Breaking News 01|CAICT Releases “Database Development Research Report (2026)”: China Market to Reach RMB 98 Billion by 2028, AI‑Native Becomes the Main Theme On July 9, at the 2026 Trustworthy Database Development Conference, the China Academy of Information and Communications Technology (CAICT) officially released the “Database Development Research Report (2026),” comprehensively revealing the latest landscape and evolution directions of the global and Chinese database markets. Key Data: Global Market: The global database market reached $131.6 billion in 2025 (approximately RMB 894.09 billion). Chinese Market: The Chinese database market reached $9.49 billion in 2025 (approximately RMB 64.48 billion), accounting for 7.2% of the global market. By 2028, the total Chinese database market is expected to reach RMB 97.974 billion, with a compound annual growth rate of 13.06% . Industry Landscape: There are 394 database product providers globally, with China and the US leading in vendor count. The number of global open‑source and closed‑source products is roughly balanced. Commercial databases account for over 70% in China, while the proportion of open‑source databases is increasing. After rapid growth from 2022 to 2024, […]
生成中...
扫描二维码
扫描二维码