首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中使用SQLite3删除具有优先级的重复键但唯一行

在Python中使用SQLite3删除具有优先级的重复键但唯一行
EN

Stack Overflow用户
提问于 2013-08-01 17:09:15
回答 1查看 724关注 0票数 0

我对Python非常陌生,我正在尝试完成以下工作:

  1. 从雅虎财经新闻API ->YDN中提取RSS提要
  2. 将标题,链接,PubDate放入数据库表
  3. 只存储唯一的标题和最新的PubDate

我没有遇到任何问题,但是当我试着做3件事的时候,我遇到了一些麻烦。以下是表的样子:

正如您所看到的,我使用不同的PubDate复制了标题。我一直想做的是遵循从Microsoft -> 支持微软中提取的步骤。

我得以通过步骤1-3,这是:

  1. 在一个名为holdkey的表中选择所有计数>1的标题
  2. 选择所有标题等于holdkey表中标题的不同记录

我的代码与MSFT链接中显示的略有不同:

代码语言:javascript
复制
import sqlite3

cur = db.cursor()
cur.execute('''create table holdkey as 
            select Title,count(*) 
            from bar group by Title
            having count(*)>1''')
cur.execute('''create table holdup as 
            select distinct bar.* 
            from bar, holdkey 
            where bar.Title = holdkey.Title''')

我需要帮助的是,在我的滞留表(如屏幕截图中所见),我仍然得到重复的标题,因为pubDate是不同的,它被称为不同的SQLite。是否有一种基于PubDate的删除副本的方法?

理想情况下,我只保留最新的,但摆脱重复是更重要的。

如果需要更多的澄清,请告诉我。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-01 17:29:44

试一试

代码语言:javascript
复制
SELECT b.symbol, b.title, b.link, b.pubdate
  FROM bar b JOIN
(
  SELECT title, MAX(pubdate) pubdate
    FROM bar
   GROUP BY title
) q ON b.title = q.title 
   AND b.pubdate = q.pubdate

这是SQLFiddle演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18000362

复制
相关文章

相似问题

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