SQL每日一题F1021,while循环操作
发表于|更新于|程技
|浏览量:
SQL每日一题F1021,while循环操作
/*
写一个查询语句要求
求出整数1到100之间排除55后的和
预计结果是4995
该如何写这个查询?
要求:使用while循环
*/
DECLARE @i INT
DECLARE @sum INT
SET @i=0
SET @sum=0
WHILE @i<100
BEGIN
SET @i=@i+1
IF @i=55
CONTINUE
ELSE
SET @sum=@sum+@i
END
PRINT @sum
文章作者: Rich
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 樊笼!
相关推荐
2023-08-01
给定用户登录表,求表中每一天的3天留存率
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394-- 给定用户登录表,求表中每一天的"3天留存率"-- step 0 表准备,用户ID,登录时间create table cm.tb_user_logs( user_id int, visit_time datetime);insert into cm.tb_user_logs(user_id, visit_time)values(1001, '2022-10-01 08:01:23'),(1001, '2022-10-01 08:11:15'),(1002, '2022-10-01 08:22:19'),(1003, '202...
2023-08-01
MySQL常用30种SQL查询语句优化方法
引言在开发和维护MySQL数据库时,优化SQL查询语句是提高数据库性能和响应速度的关键。通过合理优化SQL查询,可以减少数据库的负载,提高查询效率,为用户提供更好的用户体验。本文将介绍常用的30种MySQL SQL查询优化方法,并通过实际案例演示它们的应用。 第一部分:基础优化方法1.使用索引索引是提高数据库查询性能的基础,通过为查询字段添加合适的索引,可以加快查询速度。在创建索引时,需要考虑查询的频率和数据的更新频率,避免过度索引或不必要的索引。 123-- 创建索引CREATE INDEX idx_column ON table_name(column_name); 2.避免使用SELECT *在查询数据时,尽量避免使用SELECT *,而是明确指定需要查询的字段。这样可以减少返回的数据量,提高查询效率。 1234567-- 不推荐 SELECT * FROM table_name; -- 推荐 SELECT column1, column2 FROM table_name; 3.使用EXPLAIN分析查询计划使用EXPLAIN命令可以分析查询的执行计...
2023-08-01
查询连续登陆3天的用户id和登陆天数
1234567891011121314151617181920212223242526272829303132333435363738-- 查询连续登陆3天的用户id和登陆天数-- step1:用户登录日期去重select distinct user_id, date(visit_time) as dtfrom cm.tb_user_logs;-- step2:用row_number()计数select *, row_number() over (PARTITION by user_id order by dt) as xrankfrom (select distinct user_id, date(visit_time) as dt from cm.tb_user_logs) a;-- step3: 日期减去计数值得到差值deltaselect *, date_sub(dt, INTERVAL xrank DAY) as deltafrom (select *, row_number() over...
2023-08-01
SQL每日一题F1025,复杂逻辑处理
SQL每日一题F1025,复杂逻辑处理123456789101112131415create table F1025(id int,num int)insert into F1025 values(1,5);insert into F1025 values(2,11);insert into F1025 values(3,0);insert into F1025 values(4,-2);insert into F1025 values(5,2);insert into F1025 values(6,9);insert into F1025 values(7,1);insert into F1025 values(8,-4);insert into F1025 values(9,-7); – Q:要求当Num中的数据同时大于上下两行数据,返回值为“是”,– 当Num中的数据小于上下两行数据中的任何一行,返回值为“否”– 例如:11大于5,11大于0,所以11那行返回值为“是”;5小于11,所以5那行返回值为“否” 12345678910SELECT a....
2023-08-01
live_max_online
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116-- step0 建表-- drop table cm.tb_live_logs;create table cm.tb_live_logs( live_id int, user_id int, ts datetime, type varchar(10));-- step1 插入数据insert into cm.tb_live_logs(live_id, user_id, ts, type) values(901,1001,'2022-10-01 12:00:...
2023-08-01
求占据前90%销售额的商品类型
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144-- 求占据前90%销售额的商品类型-- step0. 准备数据create table cm.tb_sale_amount( good_category int comment '商品类型ID', sale_date date comment '销售日期', amount int co...