【问题标题】:SELECT DUPLICATE MAX(ID)选择重复的最大值(ID)
【发布时间】:2015-05-20 03:53:05
【问题描述】:

我的表中有类似以下的数据:

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)

对上述数据集的查询应返回 id 100,因为上面基于 (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

【问题讨论】:

  • SELECT territory_id, platform_id,title_id,MAX(id) FROM my_table GROUP BY territory_id, platform_id,title_id;
  • 这是一个重复的问题,我找不到。

标签: mysql


【解决方案1】:

您可以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

【讨论】:

    【解决方案2】:

    我认为您正在寻找类似的东西

    选择 DISTINCT 区域 ID,最大值(ID) ,platform_id,title_id 从测试 t 按区域 ID、平台 ID、标题 ID 分组 有 COUNT(*)>1

    这是复制表的结果 领土ID ID 平台ID 标题ID 美国 100 iTunes 155

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

    【讨论】:

      猜你喜欢
      • 2021-07-25
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 2011-02-22
      • 2021-09-18
      相关资源
      最近更新 更多