Никак не могу реализовать такой запрос: необходимо вывести id пользователя, у которого максимальное количество друзей.
Есть такая таблица:
user_one user_two type
5 6 1
6 5 1
12 6 1
7 34 1
34 7 1
12 7 2
34 7 2
Когда делаю так, все ок:
SELECT COUNT(*) AS counted
FROM `friends`
WHERE `type`='1' AND `user_two`='6'
OR `type`='1' AND `user_one`='6'
Но я хочу сделать так, чтобы был подсчет всех записей для отдельных пользователей и выведено максимальное их количество. То есть, так чтобы мне вывело id пользователя(он может быть и user_one и user_two. то есть с этими полями разница в том,что они показывают кто отправил запрос) у которого type=1. Надеюсь понятно объяснил, заранее спасибо!
select user_ -- , cnt
from (
select user_, count(*) as cnt
from (
select user_, user_two from(
select user_one as user_, user_two from friends where type = 1
union all
select user_two, user_one from friends where type = 1
) as t
group by user_, user_two) as t
group by user_) as t
order by cnt desc, user_ asc
limit 1
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости