Lösung zu Group-Query gesucht

Lösung zu Group-Query gesucht

am 19.12.2006 11:55:05 von Peter Stoss

Hallo,

folgende situation:

Tabelle beinhaltet (spalte1,spalte2,userid)

ABC | DEF | 1
ABC | DEF | 1
ABC | DEF | 1
ABC | DEF | 1
GHI | JKL | 2
GHI | JKL | 2
MNO | PQR | 1
MNO | PQR | 2
MNO | PQR | 1

Die Zuordnung ABC | DEF wird in allen 4 Zeilen von User '1' bearbeitet,
das ist in Ordnung.
Genauso ist es mit GHI | JKL in Ordnung. Beide Zeilen werden von User
'2' bearbeitet.
MNO | PQR ist nicht in Ordnung. Hier arbeiten 2 User an Zurodnungen von
MNO | PQR.

Das Result-Ergebnis des Queries muss also sein:

MNO | PQR

Ich habe es wie folgt probiert:
SELECT spalte1,spalte2,userid FROM tabelle GROUP BY
spalte1,spalte2,userid having count(*) >1 order by spalte1,spalte2.

Das führt aber nicht zum gewünschten Ergebnis. Wo liegt der Fehler
oder wie gehts richtig? Danke. Peter!

Re: Lösungzu Group-Query gesucht

am 19.12.2006 12:43:21 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Lösung zu Group-Query gesucht

am 19.12.2006 13:24:33 von Kai Ruhnau

Peter Stoss schrieb:
> folgende situation:
>
> Tabelle beinhaltet (spalte1,spalte2,userid)
>
> ABC | DEF | 1
> ABC | DEF | 1
> ABC | DEF | 1
> ABC | DEF | 1
> GHI | JKL | 2
> GHI | JKL | 2
> MNO | PQR | 1
> MNO | PQR | 2
> MNO | PQR | 1
>
> Die Zuordnung ABC | DEF wird in allen 4 Zeilen von User '1' bearbeitet,
> das ist in Ordnung.
> Genauso ist es mit GHI | JKL in Ordnung. Beide Zeilen werden von User
> '2' bearbeitet.
> MNO | PQR ist nicht in Ordnung. Hier arbeiten 2 User an Zurodnungen von
> MNO | PQR.
>
> Das Result-Ergebnis des Queries muss also sein:
>
> MNO | PQR
>
> Ich habe es wie folgt probiert:
> SELECT spalte1,spalte2,userid FROM tabelle GROUP BY
> spalte1,spalte2,userid having count(*) >1 order by spalte1,spalte2.
>
> Das führt aber nicht zum gewünschten Ergebnis. Wo liegt der Fehler
> oder wie gehts richtig? Danke. Peter!

Du möchtest die Anzahl der verschiedenen userid bei gleicher
(spalte1,spalte2)-Kombination haben:

SELECT spalte1,spalte2, COUNT(DISTINCT userid)
FROM tabelle
GROUP BY spalte1, spalte2
HAVING COUNT(DISTINCT userid)>1
ORDER BY spalte1,spalte2

Grüße
Kai

--
This signature is left as an exercise for the reader.