SQL: вставка правильного поля из набора в пример - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть простой запрос, который ищет дубликаты по 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;

Проблема в том, что он заменяет первый идентификатор, найденный вместо s.id, но мне нужен последний найденный.

Подскажите, пожалуйста, как разместить в поле последний найденный идентификатор?

Пример:

У меня есть набор записей в mariaDB с такими полями:

+--------+------------+
| id     | ext_id     |
+--------+------------+
| 376764 | 2065277658 |
+--------+------------+
| 390836 | 2065277658 |
+--------+------------+

Результат будет:

+------------+-----------------+--------+
| ext_id     | count(s.ext_id) | id     |
+------------+-----------------+--------+
| 2065277658 |               2 | 376764 |
+------------+-----------------+--------+

В этом случае в наборе отображается первый идентификатор (376764), но нужен последний (390836).

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

последний найденный , это просто означает, что вы хотите 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;
0 голосов
/ 19 февраля 2019

Ваш запрос не имеет смысла, потому что вы группируете по 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...