2015-06-20 4 views
0

У меня есть 4 столбца id, имя, фамилия, ссылка. В большинстве случаев ссылка такая же, но мне нужно отображать каждую строку с одинаковыми именами, но другую ссылку в postgresql и упорядочивать по номеру идентификатора. ТОЛЬКО для тех строк, у которых есть несколько ссылок. Я пробовал кучу вещей, но просто сделал беспорядок. Пожалуйста помогите. Например: -Postgresql: два столбца одинакового, но третьего столбца разные, строки отображения

20/John/Smith/675 
21/John/Smith/675 
22/John/Smith/676 
22/Joe/Bloggs/ 651 
24/Joe/Bloggs/ 651 
25/John/Smith/674 

Если вернуть все строки John Smith, потому что один или более из его ссылок неодинакова

20/John/Smith/675 
21/John/Smith/675 
22/John/Smith/676 
25/John/Smith/674 

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

select firstname, lastname, count (distinct id) 
    from transfer 
    group by firstname, lastname 
    having count(distinct id) >= 2 

ответ

1

Вам не нужно рассчитывать, вы только должны проверить, если (по крайней мере) одну запись с другим значением для reference для одного человека существует:

SELECT * 
FROM transfer t 
WHERE EXISTS (
    SELECT * FROM transfer x 
    WHERE x.firstname = t.firstname  -- same name 
    AND x.lastname = t.lastname 
    AND x. reference <> t.reference -- different reference 
); 
+0

Оба ответа работают, это лучший для того, что мне нужно Я думаю – Kilisi

1

Это возможный ответ:

select id, firstname, lastname, reference 
from transfer t1 
where 1 < (select count(distinct reference) 
      from transfer t2 
      where t1.firstname = t2.firstname and t1.lastname = t2.lastname) 
+0

не возвращает ничего, когда я пытаюсь его в phppgadmin – Kilisi

+0

@Kilisi, когда я пытаюсь выполнить запрос, он возвращает все строки с Джоном Смитом. Пожалуйста, опубликуйте определение таблицы. Это моя таблица: 'create table transfer (id integer, firstname text, lastname text, reference integer);' и я вставил 6 строк вашего примера. – Renzo

+0

шахта такая же, за исключением того, что ссылка имеет переменную, не видя, как это повлияет на нее. Кажется, просто сбой в phppgadmin ... Я попробую еще раз, когда я доберусь до своего офиса завтра – Kilisi

Смежные вопросы