SQL:将集合中的正确字段插入样本

时间:2019-02-19 10:42:30

标签: mysql sql

我有一个简单的查询,该查询通过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)。

2 个答案:

答案 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的最大值。