首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找没有重复项的序列- SQL

查找没有重复项的序列- SQL
EN

Stack Overflow用户
提问于 2019-10-27 12:08:32
回答 1查看 67关注 0票数 1

第一次发生堆栈溢出。

我需要找到没有重复的序列,只使用SQL。

如果我的数据是(https://i.stack.imgur.com/ZP6Iw.jpg)

代码语言:javascript
复制
System   | date | hour
---------+------+-------
Word     | 28/8 | 16:00
Word     | 28/8 | 16:01
Excel    | 28/8 | 16:02
Word     | 28/8 | 16:03
Ppt      | 28/8 | 16:04
Ppt      | 28/8 | 16:05

然后我的输出将是我使用的系统,但如果我多次使用一个系统,而没有另一个系统“在中间”,那么它将被写一次。这不是常规的“删除重复项”问题。只有当两个相同的系统一个接一个时,才会出现重复项。

(https://i.stack.imgur.com/iG7Cn.jpg)

代码语言:javascript
复制
System  | date  
--------+-------
Word    | 28/8
Excel   | 28/8 
Word    | 28/8 
Ppt     | 28/8 

我使用presto,当我被像'while‘这样的函数所限制的时候。

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-10-27 18:30:42

因为我没有办法对presto进行测试,所以我不知道这是否真的可以工作。

因此,这只是一些标准的SQL,它使用滞后窗口函数在同一日期过滤出相同的后面的"System“。

代码语言:javascript
复制
SELECT q.System, q.date
FROM
(
    SELECT 
     t.System, 
     t.date,
     t.hour,
     LAG(t.System) OVER (PARTITION BY t.date ORDER BY t.hour ASC) AS prevSystem
    FROM YourTable t
) AS q
WHERE (q.System != q.prevSystem OR q.prevSystem IS NULL)
ORDER BY q.date, q.hour
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58576546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档