0

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

  1. 从 Yahoo Finance News API 拉取 RSS 提要 -> YDN
  2. 将 Title、Link、PubDate 放入数据库表中
  3. 仅存储唯一的标题和最新的 PubDate

1和2我没有问题,但是当我尝试做3时,我遇到了一些麻烦。以下是该表的外观:

在此处输入图像描述

如您所见,我复制了具有不同 PubDate 的标题。我一直在尝试做的是按照 Microsoft Kb -> Support Microsoft中的步骤进行操作。

我能够完成步骤 1 - 3:

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

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

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 删除重复项?

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

让我知道是否需要更多说明。谢谢

4

1 回答 1

1

尝试

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演示

于 2013-08-01T17:29:44.017 回答