Plpgsql Funktion - Unterschiedliche Kombinationen addieren

Ein herzliches Hallo an dieses tolle Forum!

Seit einiger Zeit lese ich hier mit und nun muss ich auch etwas schreiben, denn eine Aufgabe aus meinem Studium raubt mir den letzten Nerv :wink: !

Folgende Situation:
Eine Funktion soll als Ergebnis die Summe der vorkommenden Kombinationen auf dem Bildschirm ausgeben (raise notice…).

Die Tabelle:

mitglied1 | mitglied2 | reise
-----------±----------±------
1 | 2 | 1
2 | 1 | 2
3 | 4 | 1
4 | 3 | 1
5 | 6 | 1
8 | 7 | 1
3 | 4 | 2
3 | 1 | 3

Sie zeigt wer mit wem in einem Doppelzimmer geschlafen hat.

Wie auf den ersten blick ersichtlich, kann sich unter mitglied1 die Nr.1 befinden, wie auch unter mitglied2. Es soll berechnet werden, wer mit wem wie oft im Doppelzimmer geschlafen hat.
Wenn mir jemand einen Hinweis geben könnte wäre das schlicht großartig!

P.S. Sorry für die schlechte Formatierung der Tabelle. Die erste Zahl = erste Spalte u.s.w.

Mal als Ansatz:

test=*# select * from wer_mit_wem ;
 id1 | id2
-----+-----
   1 |   2
   1 |   3
   2 |   3
   3 |   5
   4 |   6
   2 |   1
   3 |   2
(7 rows)

Time: 0,141 ms
test=*# select distinct greatest(id1,id2), least(id1,id2) from wer_mit_wem ;
 greatest | least
----------+-------
        3 |     1
        5 |     3
        2 |     1
        6 |     4
        3 |     2
(5 rows)

Andreas

Tja darauf muss man erst mal kommen… . Zuerst sortieren, dann zählen! Vielen Dank, werde es nachher mal ausprobieren.

Und, klappt es?

Kann es sein, daß die Frage auch in einem $anderen_forum gestellt wurde?


Andreas

Von mir jedenfalls nicht. Es hat auf jeden Fall geklappt. Vielen Dank!

Na, dann war es wohl einer Deiner Kommilitonen :wink:

Reihenfolge nicht beachten? - php.de


Andreas