Я написал следующее решение проблемы LeetCode:
SELECT ROUND(1.0*sum(t1.accepted_requests)/sum(t2.total_requests), 2) AS accept_rate
FROM (SELECT 'cool' AS common, ra.accepter_id, COUNT(DISTINCT ra.requester_id) AS accepted_requests
FROM request_accepted ra
GROUP BY 1, 2) AS t1
JOIN
(SELECT 'cool' AS common, fr.send_to_id, COUNT(DISTINCT fr.sender_id) AS total_requests
FROM friend_request fr
GROUP BY 1, 2) AS t2
ON t1.common = t2.common
Я выполнил запрос, и результат был идентичен ожидаемому ответу, опубликованному LeetCode. Однако алгоритм LeetCode говорит, что мой запрос неверен, и я не могу понять, почему.
Проблема LeetCode описана ниже:
В таких социальных сетях, как Facebook или Twitter, люди отправляют запросы на добавление в друзья и принимают запросы других. Теперь приведены две таблицы, как показано ниже:

Напишите запрос, чтобы найти общую скорость принятия запросов, округленную до 2 десятичных знаков, то есть на количество принятых делений, деленных на количество запросов.

Note:
Принятые запросы не обязательно из таблицы friend_request. В этом случае вам просто нужно просто посчитать общее количество принятых запросов (независимо от того, присутствуют ли они в исходных запросах) и разделить его на количество запросов, чтобы получить коэффициент принятия.
Возможно, что отправитель отправляет несколько запросов одному и тому же получателю, и запрос может быть принят более одного раза. В этом случае «дублированные» запросы или акцепты учитываются только один раз.
Если запросов нет вообще, вы должны вернуть 0.00 в качестве accept_rate.
Объяснение: Есть 4 уникальных принятых запроса и всего 5 запросов. Таким образом, ставка составляет 0,80.