У меня есть таблица, содержащая некоторые имена и связанные с ними идентификатор вместе со снимком:Обнаружение изменения между строк с одинаковым идентификатором
snapshot, systemid, name[, some, other, columns]
мне нужно определить все уникальные name
s, что systemid
была во всех моментальных снимков, но только там, где было хотя бы один раз.
Например, с данными:
'DR1', 0, 'MOUSE_SPEED'
'DR1', 1, 'MOUSE_POS'
'DV8', 0, 'MOUSE_BUTTONS'
'DV8', 1, 'MOUSE_POS'
'DR6', 0, 'MOUSE_BUTTONS'
'DR6', 1, 'MOUSE_POS'
'PP2', 0, 'MOUSE_SPEED'
'PP2', 1, 'MOUSE_POS'
... Я хотел бы запрос, который будет возвращать (в любом порядке):
0, 'MOUSE_SPEED'
0, 'MOUSE_BUTTONS'
Кроме того, было бы полезно имеют обратный - список systemid
s, которые остались стабильными через всеsnapshot
s (то есть, где name
никогда не изменялся).
Я использую PostgreSQL v8.4.2.
EDIT:Обновлено чтобы отразить комментарии (извините за оригинал менее чем совершенный пост, я здесь новенький!).
что бы вы перечислить вам, когда, если изменения в снимок 3? – Unreason
Если значения моментального снимка нельзя упорядочить (напрямую или через другое поле), вы не можете отличить 2, 0, «MOUSE_BUTTONS» и 3, 0, «MOUSE_BUTTONS» от данных образца. Вас интересует, какой из них выбран? Если да, то как вы выбрали его для примера результатов? – Unreason
Я предлагаю вам предоставить нам реальные данные. Мы не против помогать, но, оставляя много, чтобы быть угаданными или предоставляющими неправильные исходные данные, просто пустая трата вашего и нашего времени. Учитывая, что вы новичок в SO, я уверен, что все понимают, но воспринимают это как хороший совет для будущих вопросов. –