уникальный хэш для пары чисел

camka

не самка
уникальный хэш для пары чисел

Ести таблица

user_from_id user_to_id
--------------------------
1 2
2 1
3 2
3 1
2 3
...

Надо для каждой пары найти количество ее появлений в таблице, независимо от взаимного расположения первого и второго поля (т.е. пары 1-2 и 2-1 это одна и та же пара).

То есть в результате запроса доджен выдаватся результат:

first_user second_user count
----------------------------------------------------
1 2 2
1 3 1
2 3 2
...

в результате не важно расположение first и second user'ов.

На данный момент хэш находится элегантным решением:

group by (user_from_id + user_to_id +
( if(user_from_id>user_to_id, user_from_id,user_to_id) *
(if(user_from_id>user_to_id, user_from_id,user_to_id)-1)/2 ))

Вопрос: Может есть какой-то более изящный способ группировки?
 

Falc

Новичок
camka
GROUP BY CONCAT( user_from_id,user_to_id )

-~{}~ 03.03.04 15:59:

camka
А нет ошибся не учел "независимо от взаимного расположения"

-~{}~ 03.03.04 16:03:

camka
Точно не уверен, но попробуй:
GROUP BY ABS(a+b), ABS(a-b)
 

camka

не самка
Что-то я и не подумал об группировке по двум функциям. В таком случае возможно и GROUP BY a+b,a*b подойдет. Хотя может ваше решение и оптимальней
 
Сверху