SELECT DUPLICATE MAX(ID)

时间:2015-05-19 19:34:09

标签: mysql

我的表格中的数据类似于以下内容:

id       territory_id       platform_id         title_id    other columns
1        US                 ITUNES              155         10 others columns...
100      US                 ITUNES              155         10 others columns...
101      FR                 ITUNES              155         10 others columns...

我需要SELECT MAX(ID)根据(territory_id, platform_id, title_id)对所有重复的行进行100

上述数据集的查询应返回ID (territory_id, platform_id, title_id),因为上面基于('US', 'ITUNES', 155)的唯一重复是MAX(ID),并且该重复条目的1001(不是SELECT id FROM table GROUP BY territory_id, platform_id, title_id )。

我如何构建此查询?到目前为止,我有:

_exit(2)

2 个答案:

答案 0 :(得分:3)

您可以GROUP BY 3个字段,然后使用HAVING子句识别重复项。使用MAX,您可以获得具有重复项的每个组的最大ID

SELECT MAX(ID), territory_id, platform_id, title_id
FROM MyTable
GROUP BY territory_id, platform_id, title_id
HAVING COUNT(*) > 1

SQL Fiddle Demo

答案 1 :(得分:1)

我认为你正在寻找像这样的东西

选择DISTINCT territory_id,max(ID)   ,平台_id,title_id的   从测试t   GROUP BY territory_id,platform_id,title_id 有COUNT(*)> 1

以下是复制表的结果 territory_id id platform_id title_id US 100 ITUNES 155

如果你需要,你可以更进一步,并声明一个变量,如果它将进入报告。