我有一个简单的查询,该查询通过ext_id查找重复项:
SELECT s.ext_id, count(s.ext_id), s.id
FROM sale_point AS s
GROUP BY s.ext_id
HAVING count(s.ext_id) > 1;
问题在于它代替了找到的第一个id,但我需要找到的最后一个。
请告诉我如何将字段最后找到的ID放置在字段中?
示例:
我在mariaDB中有一组条目,其字段如下:
+--------+------------+
| id | ext_id |
+--------+------------+
| 376764 | 2065277658 |
+--------+------------+
| 390836 | 2065277658 |
+--------+------------+
结果将是:
+------------+-----------------+--------+
| ext_id | count(s.ext_id) | id |
+------------+-----------------+--------+
| 2065277658 | 2 | 376764 |
+------------+-----------------+--------+
在这种情况下,显示的是集合中的第一个ID(376764),但我需要最后一个(390836)。
答案 0 :(得分:1)
找到最后一个,这仅表示您想要max(s.id)吗?
SELECT s.ext_id, count(s.ext_id), max(s.id)
FROM sale_point AS s
GROUP BY s.ext_id
HAVING count(s.ext_id) > 1;
答案 1 :(得分:0)
您的查询没有意义,因为您要按s.ext_id
分组并汇总s.ext_id
!
您可以这样做:
SELECT s.ext_id, count(s.id), max(s.id)
FROM sale_point AS s
GROUP BY s.ext_id
HAVING count(s.id) > 1;
将s.ext_id
分组并计数s.id
。
它还返回s.id
的最大值。