如何为每个唯一行选择最早的实例[min(timestamp)]

时间:2014-07-17 16:13:31

标签: php mysql sql min

我正在使用特色维基百科文章的XML转储(包括修订和提取的引文)。

我当前的查询连接三个表以返回所有特色文章修订的引用,按页面标题,作者,年份和时间戳排序,如下所示:

____TIMESTAMP______PAGE_TITLE____AUTHOR____YEAR___TITLE_______   

1___20110801...____AARDVARK______BLAND_____2010___MAJESTIC AARDVARKS

2___20110910...____AARDVARK______BLAND_____2010___MAJESTIC AARDVARKS

3___20120101...____AARDVARK______BLAND_____2012___AARDVARK BEHAVIOUR

4___20070601...____AARDVARK______SMITH_____2005___BREEDING HABITS OF

5___20090602...____AARDVARK______SMITH_____2005___BREEDING HABITS OF 

理想情况下,我的查询只返回每个唯一引文的最早实例[min(timestamp)]。换句话说,我想要一个只返回行1,3和4的查询。我仍然需要在page_title,author,year方面重复一遍,因为每页有多个引用,可能有几个由同一作者引用。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

以下查询应该有助于在mysql环境中使用group_concat函数。

SELECT title, min(timestamp) min_ts, group_concat(page_title) pts
       ,group_concat(author) as, group_concat(year) ys
FROM temp_table  -- For simplicity I assume your above data is in a temp_table
GROUP BY title

包含相关查询有助于回答您问题的人,而无需创建问题上下文和测试。还提供更多详细信息,如DBMS - mysql,postgres等