Как сравнить значения двух столбцов после разделения таблицы в SQL Redshift - PullRequest
0 голосов
/ 27 мая 2020

У меня есть 4 столбца в таблице (Person_ID, Account_Name, Account_ID, Account_IDs). Для каждого идентификатора человека я хочу найти все те Account_ID, которые не существуют в столбце Account_IDs для этого person_ID. Ниже приведен образец таблицы:

    Person_id Account_Name Account_ID Account_IDs
--------------------------------------------------
123 Name3   ,000000ihi4MAQ, ,000000TF5MAHZ,000000TF5MAQQ,000000grVA6AM,000000ihi4MAQ,000016ILMhAO,
123 Name2   ,000016ILMhAO,  ,000000TF5MAHZ,000000TF5MAQQ,000000grVA6AM,000000ihi4MAQ,000016ILMhAO,
123 Name1   ,000000grVA6AM, ,000000TF5MAHZ,000000TF5MAQQ,000000grVA6AM,000000ihi4MAQ,000016ILMhAO,
123 Name4   ,000000TF5MAQQ, ,000000TF5MAHZ,000000TF5MAQQ,000000grVA6AM,000000ihi4MAQ,000016ILMhAO,
123 Name5   ,000000TF5MAHZ, ,000000TF5MAHZ,000000TF5MAQQ,000000grVA6AM,000000ihi4MAQ,000016ILMhAO,
124 Name2   ,000016ILMhAO,  ,000000frVA6AM,000016ILMhAO,
124 Name7   ,000024ILMhAO,  ,000000frVA6AM,000016ILMhAO,
124 Name8   ,000000frVA7XZ, ,000000frVA6AM,000016ILMhAO,
124 Name5   ,000000TF5MAHZ, ,000000frVA6AM,000016ILMhAO,
124 Name6   ,000000frVA6AM, ,000000frVA6AM,000016ILMhAO,
125 Name11  ,000000frXC6A,  ,000000frVA6BC,000024ILMhJZ,000000frXC6A,000024YTMhA,
125 Name9   ,000000frVA6BC, ,000000frVA6BC,000024ILMhJZ,000000frXC6A,000024YTMhA,
125 Name10  ,000024ILMhJZ,  ,000000frVA6BC,000024ILMhJZ,000000frXC6A,000024YTMhA,
125 Name12  ,000024YTMhA,   ,000000frVA6BC,000024ILMhJZ,000000frXC6A,000024YTMhA,
125 Name13  ,000024IXThJY,  ,000000frVA6BC,000024ILMhJZ,000000frXC6A,000024YTMhA,

Итак, из этого образца ответ должен быть:

Person_ID   Account_ID      Account_Name
-----------------------------------------

   124      000000TF5MAHZ     Name5
   124      000024ILMhAO      Name7
   124      000000frVA7XZ     Name8
   125      000024IXThJY      Name13

Я не мог понять, как сравнить значения в двух столбцах после разделения таблицы. .

Заранее благодарю за вашу помощь.

1 Ответ

1 голос
/ 28 мая 2020

Предполагая, что Account_IDs - строка, содержащая значения, разделенные запятыми, используйте:

WHERE Account_IDs NOT LIKE '%' || Account_ID || '%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...