LeetCode:Database 77.找到连续区间的开始和结束数字

Posted Xiao Miao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:Database 77.找到连续区间的开始和结束数字相关的知识,希望对你有一定的参考价值。

要求:编写一个 SQL 查询得到 Logs 表中的连续区间的开始数字和结束数字,将查询表按照 start_id 排序。

表:Logs的结构

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| log_id        | int     |
+---------------+---------+
id 是上表的主键。
上表的每一行包含日志表中的一个 ID。

Logs 表:

+------------+
| log_id     |
+------------+
| 1          |
| 2          |
| 3          |
| 7          |
| 8          |
| 10         |
+------------+

Result Table:

+------------+--------------+
| start_id   | end_id       |
+------------+--------------+
| 1          | 3            |
| 7          | 8            |
| 10         | 10           |
+------------+--------------+
结果表应包含 Logs 表中的所有区间。

SQL语句:

select min(log_id) as start_id,max(log_id) as end_id
from(
select log_id,(log_id-row_number() over(order by log_id)) as r
from logs) a
group by r
order by log_id asc;

以上是关于LeetCode:Database 77.找到连续区间的开始和结束数字的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode:Database 100.活跃用户

LeetCode:Database 100.活跃用户

LeetCode:Database 27.连续空余座位

LeetCode:Database 71.报告系统状态的连续日期

LeetCode:Database 06.换座位

LeetCode:Database 12.游戏玩法分析 IV