Как получить уникальные записи из дублированных записей (игнорируя первые два символа)? - PullRequest
0 голосов
/ 28 января 2019

Как мы можем получить список уникальных идентификаторов пользователя из приведенной ниже таблицы (10 записей)?

Вот правило: при сравнении идентификатора пользователя ищите только идентификатор пользователя, начинающийся с 'AB', и соответствующие ему дубликаты (кроме ').AB ').Затем получите список «уникальных идентификаторов пользователя», только вернув выше дублированный идентификатор пользователя, который не имеет «AB» в начале.

Я знаю, это звучит странно, см. Пример ниже:

Таблица Имя пользователя с десятью записями, а ее поля userId (10 записей):

ABC1234
C1234
C12345
BC12345
BBC1234

ABF1235
F1235

BCD3456
D3456

DE3456

Желаемый результат:

C1234
F1235

Я использовал приведенный ниже запрос, но обнаружил, что он совсем не решил проблему.Эта проблема намного сложнее, чем я думал, потому что я не знаю, как убедиться, что я нахожу только идентификаторы пользователей, начинающиеся с «AB» и их дубликатов (но без «AB» в начале).

SELECT
COUNT(DISTINCT CASE WHEN LEFT(userId, 2) IN ('AB') THEN SUBSTRING(userId, 3)
                    ELSE userId
               END) AS co_count, userId
FROM UserName c where userId like 'AB%';

Спасибо за любую помощь или подсказку!

1 Ответ

0 голосов
/ 28 января 2019

Если посмотреть на ваш результат, кажется, что вы просто смотрите слева от строки, начинающейся с 'AB' без 'AB'

SELECT distinct  substr(userId , -(length(userID)-2))
from  UserName 
where userId like 'AB%';

для включения всех строк, которые не начинаются с 'AB', которые вы могли быиспользуйте СОЮЗ

SELECT substr(userId , -(length(userID)-2))
from  UserName 
where userId like 'AB%'
UNION 
SELECT userId 
from  UserName 
where userId NOYT like 'AB%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...