J'ai une table contenant des noms et leur carte d'identité associée, ainsi que d'un instantané:changements Détection entre les lignes avec la même ID
snapshot, systemid, name[, some, other, columns]
je dois identifier tous les name
unique de que systemid
a eu dans l'ensemble instantanés, mais seulement là où il y a eu au moins une fois le changement.
Par exemple, avec les données:
'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'
... Je voudrais une requête qui renverra (dans l'ordre):
0, 'MOUSE_SPEED'
0, 'MOUSE_BUTTONS'
De plus, il serait utile de ont l'inverse - une liste de systemid
s qui sont restés stables sur toussnapshot
s (c'est-à-dire où le name
n'a jamais changé). J'utilise PostgreSQL version 8.4.2.
EDIT:Mise à jour pour tenir compte des commentaires (désolé pour l'original moins-que-parfait après, je suis nouveau ici!).
que feriez-vous vous la liste quand si elle change en instantané 3? – Unreason
Si les valeurs d'instantané ne peuvent pas être commandées (directement ou via un autre champ), vous ne pouvez pas distinguer 2, 0, 'MOUSE_BUTTONS' et 3, 0, 'MOUSE_BUTTONS' des données d'exemple. Vous souciez-vous du choix? Si oui, comment l'avez-vous choisi pour l'exemple de résultat? – Unreason
Je vous suggère de nous fournir des données réelles. Cela ne nous dérange pas d'aider, mais en laissant trop de choses à deviner ou en fournissant de mauvaises intrants, c'est juste une perte de temps et de votre temps. Considérant que vous êtes nouveau sur SO, je suis sûr que tout le monde comprend, mais prenez cela aussi bon conseil pour les questions futures. –