思路: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;