sql - 如何删除 SQL 中的重复数据?
问题描述
我需要显示不重复的行,但仅与它们的邻居一起显示,它们应该保留在 sqlite 中的整个数据库中(也在单个副本中)。这是我所缺少的: 初始数据库:
(id (INTEGER PRIMARY KEY)|security_id|date_and_time|price)
(1|AAPL|2020-08-21 09:59:51|100.2)
(2|AAPL|2020-08-21 09:59:51|100.2)
(3|AAPL|2020-08-21 09:59:51|100.2)
(4|AAPL|2020-08-21 09:59:52|100.2)
(5|AAPL|2020-08-21 09:59:52|100.3)
(6|AAPL|2020-08-21 09:59:52|100.2)
...
应该输出什么:
(4|AAPL|2020-08-21 09:59:51|100.2)
(5|AAPL|2020-08-21 09:59:52|100.3)
(6|AAPL|2020-08-21 09:59:52|100.2)
...
谢谢 :)
解决方案
使用滞后和案例:
SELECT X.ID, X.SECURITY_ID, X.DATE_AND_TIME, X.PRICE FROM (
SELECT CASE WHEN NEXT_VALUE = 0 THEN 1
WHEN NEXT_VALUE = PRICE THEN 0
ELSE 1 END AS CHECK_VALUE, A.* FROM (
SELECT A.*,LEAD(A.PRICE, 1, 0) OVER(ORDER BY ID) NEXT_VALUE FROM
TAB A ) A ) X WHERE CHECK_VALUE = 1 ORDER BY ID;
推荐阅读
- c# - 弹性工具 - 如何为不同的服务器创建分片
- r - 从R中的多个csv文件中读取数据
- angular - Angular:在组件之间传递数据的最佳方式?
- sas - 对 SAS 配置文件进行永久性更改
- python - 获取具有随机类名的元素
- javascript - 窗口粘贴事件侦听器未在 IE 11 中触发
- php - 防止 Apache/PHP 运行影响另一个 vHost 的代码
- ios - 阴阳初始化 - 在调用 init 之前等待片断
- python - 循环遍历在 DataFrame 中创建新列的函数中的元组列表
- c# - 是否可以将 PSSession 导入现有的“OutOfProcessRunspace”