当前位置: 首页 > news >正文

京网站建设seo优化工作内容做什么

京网站建设,seo优化工作内容做什么,优化网络工程师,如何做 行业社交类网站180. 连续出现的数字 表:Logs -------------------- | Column Name | Type | -------------------- | id | int | | num | varchar | -------------------- 在 SQL 中,id 是该表的主键。 id 是一个自增列。 找出所有至少连续出现三次的数字。 返回的…

180. 连续出现的数字

表:Logs

±------------±--------+
| Column Name | Type |
±------------±--------+
| id | int |
| num | varchar |
±------------±--------+
在 SQL 中,id 是该表的主键。
id 是一个自增列。

找出所有至少连续出现三次的数字。

返回的结果表中的数据可以按 任意顺序 排列。

结果格式如下面的例子所示:

示例 1:

输入:
Logs 表:
±—±----+
| id | num |
±—±----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
±—±----+
输出:
Result 表:
±----------------+
| ConsecutiveNums |
±----------------+
| 1 |
±----------------+
解释:1 是唯一连续出现至少三次的数字。

题解

  • 连续问题
    应该想到lag、lead偏移函数,把数据进行规整打横
  • 至少连续出现三次的数字
    是不是把表通过顺序打横,错位就行?

思考:针对这类问题,你就细想,怎么实现呢?
sql又不是代码,没办法计数,还要连续,怎么办呢?起码应该想到的就是组合?
怎么组合? union、join、有没有现成的函数?也没别的方式了呀,心里kemo【模拟】一下,很显然union是不行的,只能join,咋join呢?

于是乎就想到了这2种方法:

方法一 表自关联

不是要至少连续三次吗?把连续三次的搞出来呗

表自关联三次,因为数据是有序的,那是不是把第二张表向上平移下,第三张表再向上平移下就可以了呢? 边看结果边思考,样图如下

selectl1.num as ConsecutiveNums
from logs l1 join logs l2 join logs l3
on l1.id=l2.id-1 and l2.id=l3.id-1
where l1.num=l2.num and l2.num=l3.num

在这里插入图片描述

方法二 lag、lead偏移函数

先找找定义,官网或者百度一下就清楚了,看到函数说明以后心里的石头终于落地了,太简单了吧?
lead一下抵扣咱们join三次呀,搞起搞起!!!

Lag函数:将数据向下偏移
Lag函数可以将数据向下偏移指定的行数,使得上方的数据出现空值。例如,你可以使用Lag函数来计算用户的复购间隔,或者在其他需要上下文计算的场景中使用。

语法:
Lag(expression, offset, default_value) over ()
– expression:要取的列名
– offset:取偏移后的第几行数据
– default_value:没有符合条件的默认值

🔄 Lead函数:将数据向上偏移
与Lag函数相反,Lead函数将数据向上偏移指定的行数,使得下方的数据出现空值。这种功能在处理时间序列数据或者需要前瞻性计算时非常有用。

语法:
Lead(expression, offset, default_value) over ()
– expression:要取的列名
– offset:取偏移后的第几行数据
– default_value:没有符合条件的默认值

select tmp.num as ConsecutiveNums from (select id,num,lead(num,1,null) over() as col_2,lead(num,2,null) over() as col_3from logs
) tmp where tmp.num = tmp.col_2 and tmp.num = tmp.col_3

在这里插入图片描述
在这里插入图片描述

ddl

create database test2024;
use test2024;
create table logs (id int primary key , num int);
insert into logs values(1,1),(2,1),(3,1),(4,2),(5,1),(6,2),(7,2);

万变不离其宗,高级函数只是为了让我们使用起来更方便,其实没啥了不起的,别怕,战略藐视。。。。

http://www.ds6.com.cn/news/89039.html

相关文章:

  • 搭建网站不用服务器吗企业网站设计方案
  • 网站怎么换域名中国产品网
  • 江西新余渝水区疫情最新消息seo哪里可以学
  • 网站设计制作排名青岛做网络推广的公司有哪些
  • 网站建设太金手指六六十八品牌营销策略论文
  • 驻马店做网站公司公司网站建设平台
  • 如何做手机网站seo综合检测
  • 网站免费主机申请自己怎么优化关键词
  • 学做早餐网站腾讯云域名注册
  • 专门做旅游攻略的网站有哪些看b站视频下载软件
  • 医院网站源码下载杭州seo首页优化软件
  • 温州手机网站建设wmwl常见的网络推广方法有哪些
  • 网络优化推广 网站开发建设合肥网络推广软件系统
  • 生活分类信息网站源码网络培训总结
  • 学完ssm可以做哪些网站重庆网站到首页排名
  • 新白鹿网络营销方式百度seo关键词排名优化工具
  • 自己做网站微商seo搜索如何优化
  • 企业网站的在线推广方法有哪几种百度网站推广排名优化
  • 新网站没有死链接怎么做网站建设图片
  • 给公司做网站 优帮云如何提高网站在搜索引擎中的排名
  • 网站优化标题外包公司有哪些
  • 辽宁城乡建设集团官方网站十大app开发公司排名
  • 西安做网站的公司哪家好北京疫情最新消息情况
  • 坂田英文网站制作南京关键词优化软件
  • wordpress仿站软件开网站需要多少钱
  • 做代购的流程 韩国网站无代码网站开发平台
  • 网站建设报价清单内容石家庄自动seo
  • b2c网站开发核心技术移动端seo关键词优化
  • 政府网站前台模板手机制作网站的软件
  • 58网站怎么做才有客户问常见的搜索引擎