这道题是给出两张表,计算好友申请的总体通过率
主要注意以下几点,
- 一个同样的好友申请可能会被发送几次,所以需要去重操作
- 对于通过的好友申请不一定都是在好友请求中,这里我的思路有点混乱,只需要记录通过的个数占申请的个数的比例就可以了
- 如果没有通过,那要填写为0
- 这里还有对小数点后几位的要求
以上的要求我们要一一满足
SELECT ROUND(IFNULL(
(SELECT COUNT(DISTINCT requester_id, accepter_id)
FROM request_accepted)/
(SELECT COUNT(DISTINCT sender_id, send_to_id)
FROM friend_request), 0), 2)
AS accept_rate
这里要注意的是round(a, 2)的用法,还有ifnull(a, A, B)就是指如果不是null那就是A,如果是null,那就是B