Выбрать максимльно количество записей

253
08 июля 2017, 08:54

Никак не могу реализовать такой запрос: необходимо вывести 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. Надеюсь понятно объяснил, заранее спасибо!

Answer 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
READ ALSO
Как в Mockito проверить что метод не был вызван?

Как в Mockito проверить что метод не был вызван?

Для того чтобы проверить что метод был вызван мы вызываем verify(mock)method()

327
Вопрос по Java и Python [требует правки]

Вопрос по Java и Python [требует правки]

Хочу заняться изучением языков программирования Java и PythonЧасто ли используется в этих языках математика, для написание ПО

313
неправильная отрисовка окна

неправильная отрисовка окна

при выполнении копирует в окно место где окно находилось во время старта программы

299