Я заинтересован в том, чтобы пользователи, которые входят в первую десятку процентов друзей в базе данных социальной сети.SQL-запрос, чтобы получить пользователей, у которых есть друзья в верхней части N-го процентиля
В приведенном ниже фрагменте кода указаны все пользователи, у которых максимальное количество друзей.
SELECT
h.name,
h.grade
FROM
highschooler h,
friend f
where
h.id = f.id1
group by
f.id1
having
count(f.id2) <= (
select
max(r.c)
from
(
select
count(id2) as c
from
friend
group by
id1
) as r)
Моя база данных выглядит следующим образом:
Highschooler (ID, name, grade)
Там студент средней школы с уникальным идентификатором и данного имени в определенном классе.
Friend (ID1, ID2)
Студент с ID1 дружит с учеником с ID2. Дружба взаимная, поэтому, если (123, 456) находится в таблице «Друг», то есть (456, 123).
Мне интересно, есть ли функция процентиля, которую можно использовать вместо функции MAX
. Есть ли у кого-нибудь идеи о том, как я могу получить пользователей, у которых есть друзья в 10-м процентиле?
Любая помощь будет оценена по достоинству!
Пожалуйста, помечать свой вопрос с базой данных, которую вы используете. Ответ может легко зависеть. – sgeddes
Я добавил, я полагаю. Вам нужна дополнительная информация о самой базе данных? –
Используете ли вы 'sql server',' mysql', 'oracle' или какую-то другую базу данных? – sgeddes