mysql 查询实战2-解答

        看了mysql 查询实战2-题目-CSDN博客的题目,继续进行解答。

6、查询⽹站访问⾼峰期

        目标: 查询网站访问高峰时期,高峰时期定义:至少连续三天访问量>=1000

1,关联查询

        要连续三天,至少要声明“自身”三个去判断

select distinct a.* from visit_summary as a,visit_summary as b,visit_summary as c
where a.visit_sum>=1000 and b.visit_sum>=1000 and c.visit_sum>=1000 
and
(
a.id=b.id-1 and b.id=c.id-1
or
b.id=a.id-1 and a.id=c.id-1
or
b.id=c.id-1 and c.id=a.id-1
) order by id ;

2,用变量的方式处理

select * from(
select *,@flag:=if((count>=3 or @flag=1) and count>0,1,0) as flag
from(select *,@count:=if(visit_sum>=1000,@count+1,0) as count from visit_summary
) as tmp order by id desc
) as tmp where tmp.flag=1 order by tmp.id;

        如果是连续4天,5天,6天呢?这情况,用变量就很有优势了。用sql写,不断关联自身n次的话,sql就很繁杂了。

7、查询表中⾄少连续三次的数字

1,关联查询:

要连续三次,还是要声明“自身”三个去判断

select distinct a.number 
from numbers as a, numbers as b,numbers as c 
where a.id=b.id-1 and b.id=c.id-1 and a.number=b.number 
and b.number=c.number;

2,用变量的方式

 select distinct number from(
select *,@count:=if(@pre=number,@count+1,1) as count,@pre:=number as pre from
numbers, (select @count:=0,@pre:=null) v
) as tmp where tmp.count >= 3;

8、交换座位

 目标:实现座位的交换,如果总数是奇数,那最后⼀⾏就不要交换了

1,异或判断

        异或(XOR)操作通常用于二进制数据,可以通过使用^操作符来实现。异或运算符常用于比较不同位,即只有一位不同的值,返回1,否则返回0

select 0^1, 1^1, 2^1, 3^1, 4^1, 5^1;

2,关联查询

select a.seat_id, coalesce(b.name,a.name) as name 
from seat_plan a left join seat_plan b
on b.seat_id=(a.seat_id-1)^1+1
order by a.seat_id;

3,用取余的方式去处理

select (case when mod(seat_id,2)!=0 and seat_id!=total then seat_id+1when mod(seat_id,2)!=0 and seat_id=total then seat_idelse seat_id-1end
) as id, name 
from seat_plan,(select count(1) as total from seat_plan) as tmp
order by id;

        这个比较难想到,写起来也麻烦。

9、查询销售额较昨⽇上升的记录

1,关联自身进行比较

select b.* from sale as a,sale as b 
where datediff(b.record_date, a.record_date)=1 and
b.ammount > a.ammount;

2,用变量方式

 select id,record_date,ammount from
(
select *,@flag:=if(ammount>@pre,1,0) as flag,@pre:=ammount as pre from (select
@flag:=0,@pre:=null) as v, sale order by record_date
) as tmp where flag=1;

10、查询投票结果的排名情况

        即第一名、第二名是谁,或者理解为,按倒序排好后,加个序号(区别就是同值的,排名是一样的)。

1,关联比较

要加一列,统计投票数大于当前行的

select *,(select count(b.votes) from vote as b where b.votes>=a.votes) as
ranking from vote as a order by votes desc;

2,用变量等方式

SELECT id, NAME, votes, ranking  FROM (
SELECT *, @same:=IF(votes=@pre, @same+1,0) AS same,  @ranking:=IF(votes=@pre, @ranking, @ranking+1+IF(@sumSame > 0, @sumSame,0)) AS ranking,@pre:=votes AS pre, @sumSame:=@same AS sunSame
FROM (SELECT @ranking:=0,@same:=0,@pre:=NULL,@sumSame:=NULL
) AS v,vote ORDER BY votes DESC
) AS temp;

        这边排名,用变量的方式就显得比较繁琐了,用sql就简单很多。

总结:

        对于有比较的,除了用sql,也考虑用变量的方式,看下哪种方式会更方便?目前来看,出现多次的这种的,用变量会更简便,不用反复自身关联。

        

        上一篇:《mysql 查询实战2-题目-CSDN博客》

        下一篇:《mysql 查询实战3-题目》

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/619985.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

淄博烧烤、天水麻辣烫-《实现领域驱动设计》中译本评点-第2章(5)

相关链接 DDD领域驱动设计批评文集>> 汪峰哭晕在厕所-《实现领域驱动设计》中译本评点-第2章(1) 可不是乱打的-《实现领域驱动设计》中译本评点-第2章(2) “领域”的错误定义-《实现领域驱动设计》中译本评点-第2章&…

关于机器学习/深度学习的一些事-答知乎问(六)

如何使用频率域变换对序列数据进行增强? 时频变换是常见的信号分析思路,同样可用于数据增强。在频率域添加噪声是方法之一。比如可以对传感器信号应用短时傅里叶变换STFT得到具有时序关系的谱特征,再在谱特征上应用两种数据增强方法。一是对…

版本控制工具Git的使用

1、Git的基本概念和使用 1、Git是什么? ● Git: 是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 ● GitHub: 全球最大的面向开源及私有软件项目的托管平台,免费注册并且可以免费托管开源代码。 ● GitLab:与GitHub类似&a…

IDP之Backstage - 环境搭建

0. 目录 1. 前言2. 环境准备(Windows10下)2.1 安装nvm2.2 git和docker安装 3. 创建模板项目3.1 典型错误: fails on the yarn install step3.2 再次启动3.3 验证 4. 相关 1. 前言 本不想写这篇,因为看着官网文档写着挺简单的,但实…

计算机网络 Cisco路由信息协议(RIP)实验

一、实验内容 1、命名 2、关闭域名解释 3、设置路由器接口IP地址 4、根据要求配置RIP以实现所有客户机都能相互通信 5、配置默认路由 二、实验数据处理 1、建立拓扑图 2、PC机地址配置 主机IP地址子网掩码网关PC110.23.1.2255.255.255.010.23.1.1PC210.23.1.3255.255.2…

【MATLAB源码-第27期】基于matlab的QPSK定时同步仿真,采用gardner算法,Costa锁相环。

操作环境: MATLAB 2022a 1、算法描述 QPSK,有时也称作四位元PSK、四相位PSK、4-PSK,在坐标图上看是圆上四个对称的点。通过四个相位,QPSK可以编码2位元符号。图中采用格雷码来达到最小位元错误率(BER) —…

基于springboot的综合成绩管理系统(含源码+sql+视频导入教程+文档+PPT)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的综合成绩管理系统2拥有三个角色 管理员:学生管理、班主任管理、班级管理、综合测评管理等 学生:综合测评/德育成绩/课程成绩/体育成绩的登记 班…

Scrapy框架 进阶

Scrapy框架基础Scrapy框架进阶 【五】持久化存储 命令行:json、csv等管道:什么数据类型都可以 【1】命令行简单存储 (1)语法 Json格式 scrapy crawl 自定义爬虫程序文件名 -o 文件名.jsonCSV格式 scrapy crawl 自定义爬虫程…

WinForms 零基础进阶教程:文件操作与 CSV 处理

文章目录 文件操作数据存储与文件操作文件存取的好处文件存取的方式文本文件的写入和读取文本文件的删除、复制和移动 目录的操作文件属性操作文件路径 对话框OpenFileDialog对话框SaveFileDialog对话框对话框中CheckPathExists属性的应用 CSV 文件读写与 DataGridView 进阶Dat…

创新营销利器:淘宝扭蛋机小程序开发全解析

在数字化浪潮的推动下,淘宝扭蛋机小程序的开发成为了一种全新的购物体验。它巧妙地将传统扭蛋机的乐趣与移动技术的便捷相结合,为用户带来了前所未有的惊喜与互动。 淘宝扭蛋机小程序的开发,不仅是一次技术的革新,更是一次购物方…

用于 SQLite 的异步 I/O 模块(二十四)

返回:SQLite—系列文章目录 上一篇:SQLite的PRAGMA 声明(二十三) 下一篇:SQLite、MySQL 和 PostgreSQL 数据库速度比较(本文阐述时间很早比较,不具有最新参考性)(二…

计算机网络——WEB服务器编程实验

实验目的 1. 处理一个 http 请求 2. 接收并解析 http 请求 3. 从服务器文件系统中获得被请求的文件 4. 创建一个包括被请求的文件的 http 响应信息 5. 直接发送该信息到客户端 具体内容 一、C 程序来实现 web 服务器功能。 二、用 HTML 语言编写两个 HTML文件,并…