Hi,
ich habe eine Tabelle mit
userid_1 userid_2
23 45
53 23
23 45
45 23
45 23
23 77was ich möchte wäre einen counter der die Häufigkeit zählt und gruppiert - so dass nur eine Paarung von userid_1 und user_id2 vorkommt:
userid_1 userid_2 counter
23 45 4
53 23 1
23 77 1
ich würde zunächst mal die einzelnen Tupel nach Größe sortieren:
Also z.B.
SELECT
LEAST(userid_1, userid_2) AS u1,
GREATEST(userid_1, userid_2) AS u2
FROM yourtable
Das Ergebnis sollte nun sein:
userid_1 userid_2
23 45
23 53
23 45
23 45
23 45
23 77
Hiernach kannst du nun einfach gruppieren:
SELECT
t.u1,
t.u2,
COUNT(*)
FROM (
SELECT
LEAST(userid_1, userid_2) AS u1,
GREATEST(userid_1, userid_2) AS u2
FROM yourtable
) t
GROUP BY t.u1, t.u2
Ungetestet.
Bis die Tage,
Matti