思路:mysql
(SELECT COUNT(*) FROM (SELECT DISTINCT sender_id, send_to_id FROM friend_request) A)
(SELECT COUNT(*) FROM (SELECT DISTINCT requester_id, accepter_id FROM request_accepted) B)
最終代碼sql
SELECT ROUND(IFNULL( (SELECT COUNT(*) FROM (SELECT DISTINCT requester_id, accepter_id FROM request_accepted) B) / (SELECT COUNT(*) FROM (SELECT DISTINCT sender_id, send_to_id FROM friend_request) A) ,0) ,2) AS accept_rate;
思路:code
採用UNION ALL將表的requester_id和accepter_id列上下拼接,並建立臨時表Ablog
用COUNT()統計每一個requester_id出現的次數class
將A按照requester_id降序排列request
取第一行。im
SELECT A.requester_id AS id, COUNT(A.requester_id) AS num FROM( SELECT requester_id FROM request_accepted UNION ALL SELECT accepter_id FROM request_accepted) A GROUP BY A.requester_id ORDER BY num DESC LIMIT 1;