力扣597(MySQL)-好友申请Ⅰ:总体通过率(简单)
题目:

此表没有主键,它可能包含重复项。
该表包含发送请求的用户的 ID ,接受请求的用户的 ID 以及请求的日期。

此表没有主键,它可能包含重复项。
该表包含发送请求的用户的 ID ,接受请求的用户的 ID 以及请求通过的日期。
问题
写一个查询语句,求出好友申请的通过率,用 2 位小数表示。通过率由接受好友申请的数目除以申请总数。
提示:
通过的好友申请不一定都在表 friend_request 中。你只需要统计总的被通过的申请数(不管它们在不在表 FriendRequest 中),并将它除以申请总数,得到通过率
一个好友申请发送者有可能会给接受者发几条好友申请,也有可能一个好友申请会被通过好几次。这种情况下,重复的好友申请只统计一次。
如果一个好友申请都没有,你应该返回 accept_rate 为 0.00 。
示例
输入:


解释:
总共有 5 个请求,有 4 个不同的通过请求,所以通过率是 0.80
解题思路:
①先用两个子查询从两个表中查询出总共请求个数和通过请求个数,可以使用distinct 加两个字段来筛选出多个不同的值;
②使用ifnull(expr1,expr2)来解决--如果一个好友申请都没有,你应该返回 accept_rate 为 0.00 ;
③使用round(express,2)来解决---求出好友申请的通过率,用 2 位小数表示。
1 SELECT
2 ROUND(
3 IFNULL(
4 ( SELECT count( DISTINCT requester_id, accepter_id ) FROM RequestAccepted_597 )
5 /
6 ( SELECT count( DISTINCT sender_id, send_to_id ) FROM FriendRequest_597 )
7 ,0)
8 , 2)
9 AS temp;
小知识:
①IFNULL用法:
IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。
②round(x,d) ,x指要处理的数,d是指保留几位小数
这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0;
-- 结果为1100
select round(1123.26723,-2);
-- 结果为1120
select round(1123.26723,-1);
-- 结果为1123.27
select round(1123.26723,2);
力扣597(MySQL)-好友申请Ⅰ:总体通过率(简单)的更多相关文章
- 力扣561. 数组拆分 I-C语言实现-简单题
题目 传送门 给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(a ...
- 力扣566. 重塑矩阵-C语言实现-简单题
题目 传送门 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据. 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要 ...
- 力扣832. 翻转图像-C语言实现-简单题
题目 传送门 文本 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果. 水平翻转图片就是将图片的每一行都进行翻转,即逆序.例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, ...
- 力扣896. 单调数列-C语言实现-简单题
题目 传送门 文本 如果数组是单调递增或单调递减的,那么它是单调的. 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的. 如果对于所有 i <= j, ...
- 力扣1052. 爱生气的书店老板-C语言实现-中等难度
题目 传送门 文本 今天,书店老板有一家店打算试营业 customers.length 分钟.每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开. 在某些时 ...
- 力扣---1148. 文章浏览 I
Views 表:+---------------+---------+| Column Name | Type |+---------------+---------+| article_i ...
- 力扣---511. 游戏玩法分析 I
活动表 Activity: +--------------+---------+| Column Name | Type |+--------------+---------+| player ...
- php大力力 [051节] 支付宝支付.申请支付资质,等待审核中
https://beecloud.cn/doc/payapply/?index=6 支付宝支付申请支付资质 一.注册支付宝用户 在支付宝官网注册成为用户 二.签约对应支付产品 应用集成支付宝支付,需要 ...
- 力扣算法题—069x的平方根
实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 示例 ...
- Mysql数据库申请
前段时间大部门下新成立了一个推广百度OCR.文字识别.图像识别等科技能力在金融领域应用的子部门.因为部门刚成立,基础设施和人力都是欠缺的.当时分到我们部门的任务是抽调一个人做新部门主站前端开发工作.本 ...
随机推荐
- 基于python的环境噪声实时监测系统
一 系统简介 1.简介 该系统可以实时显示噪声量大小,并进行一段时间的噪声统计. 2.特性 实现噪声值的统计 实现了噪声显示 完整的主题和样式控制 简单的内置日志窗口 二 源码解析 1.噪声分贝的 ...
- 不想dto套dto可以这样写
之前都是要新建个dto文件的,偶然看到别人这样写,简单记录一下 @Data public class GdtDailyBalanceContent { List<GdtDailyBalanceR ...
- @Autowired和@Resource整理
参考,欢迎点击原文:https://www.ixigua.com/6991282608663593508?id=6945836219422999079&logTag=944f6616c791c ...
- Linux 上 libcurl库 curl_easy_perform Crash(signal 11 - SIGSEGV)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- undefined reference to vtable for "xxx::xxx" in QT(已解决)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文发布于 2015-02-09 15:37:25 ...
- 【LeetCode刷题】744. 寻找比目标字母大的最小字母
744. 寻找比目标字母大的最小字母(点击跳转LeetCode) 给你一个排序后的字符列表 letters ,列表中只包含小写英文字母.另给出一个目标字母 target,请你寻找在这一有序列表里比目标 ...
- Redis 中 scan 命令太坑了,千万别乱用!!
作者:铂赛东\链接:www.jianshu.com/p/8cf8aac3dc25 1 原本以为自己对redis命令还蛮熟悉的,各种数据模型各种基于redis的骚操作.但是最近在使用redis的scan ...
- ps去除图片中间部分并拼合
今天分享一个用ps去除图片中间部分后,把剩下的部分拼合的技术. 需求 下面这张图,需要去掉第三列(顺丰包邮价) ps处理过程 1.导入图片到ps软件 快捷键方式:Ctrl + O: 手动打开方式:点击 ...
- VScode 配置私钥免密登录
VScode 配置私钥免密登录 配置公钥私钥进行免密登录在前文已经提及.在完成上述配置后,我们希望在VScode中配置,毕竟主要的开发环境还是在VScode上且连接到远程服务器会经常遇到网络不稳定需要 ...
- C# 人脸检测 人脸比对 活体检测 口罩检测 年龄预测 性别预测 眼睛状态检测
基于以下开源软件做了一个Demo GitHub - ViewFaceCore/ViewFaceCore: C# 超简单的离线人脸识别库.( 基于 SeetaFace6 ) 效果 代码 using Sy ...