我的表格中的数据类似于以下内容:
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)
,并且该重复条目的100
是1
(不是SELECT id FROM table GROUP BY territory_id, platform_id, title_id
)。
我如何构建此查询?到目前为止,我有:
_exit(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
答案 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
如果你需要,你可以更进一步,并声明一个变量,如果它将进入报告。