leetcode刷MySQL记录——sum/count里加条件判断、avg求满足条件记录数占比

leetcode题目:1934. 确认率

在刷leetcode的MySQL题中,从题目的题解知道了count和avg聚合函数的另外用法,在此记录。

count() 里加条件判断

count函数用于统计在符合搜索条件的记录中,指定的表达式expr不为NULL的行数有多少(只要不为NULL都会进行统计)。这里需要特别注意的是,expr不仅仅可以是列名,其他任意表达式都是可以的。

还看到一篇文章说,在MySQL里,count(*) 会把*变为0,即count(0),而0不等于NULL,所以相当于记录表中的总记录数。

刚开始一直弄不明白题解的答案,经过不断尝试后,知道了count的实际运行效果,如下

count(age > 10)  -> 不管条件成不成立,都会用age的实际值去计数,只要age不为null都会累计
count(age > 10 or null) -> 符合条件,用age的实际值去计数,只要age不为null都会累计-> 不符合条件,则取or后跟的值,这里为null,即count(null),count对null不计数
count(1) / count(null) -> 出现除以0的非法情况,结果会返回null
-- 统计年龄大于19岁的用户人数
-- 以下三种写法等价
select count(age <  19 or null) from user 
select count(if(age <  19, 1, null)) from user 
select count(case when age <  19 then 1 end) from user 

avg() 求符合条件的记录数占比

AVG除了可以计算某字段的均值外,还可以计算符合条件的记录数占比,AVG(判断条件) = 满足“判断条件”为True的记录数 / 总记录数,即每个user_id分组中满足“action = 'confirmed'”的行数占该组总行数的比例

sum()函数里加条件判断

# Write your MySQL query statement below
select a.user_id,
round(sum(if (b.action='confirmed',1.00,0.00)) / count(a.user_id), 2) as confirmation_rate 
from Signups a left join Confirmations b on a.user_id = b. user_id
group by a.user_id

参考:

必看!大家困惑的AVG写法的解释!简单易懂!

【确认率】使用count()函数并添加筛选条件

sum+iif 题解

Mysql count 带条件计数

MySQL Count函数使用教程

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/36202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GIS避坑指南!工作中ArcGIS常用的40个小技巧

01图斑的边界线太粗而且无法修改 之前有群友遇到这样一个问题&#xff0c;边界线粗到连图斑都看不见&#xff1a; 查看符号系统&#xff0c;很正常&#xff1a; 究其原因&#xff0c;是地图视图比例的问题&#xff0c;正常情况下&#xff0c;地图的视图比例会随着视图范围自动调…

未来20年人工智能将如何塑造社会

照片由Brian McGowan在Unsplash上拍摄 更多资讯&#xff0c;请访问 2img.ai “人工智能会成为我们的救星还是我们的末日&#xff1f;” 几十年来&#xff0c;这个问题一直困扰着哲学家、科学家和科幻爱好者。 当我们踏上技术革命的边缘时&#xff0c;是时候透过水晶球&#x…

我国氮化硼市场规模逐渐扩大 市场集中度有望不断提升

我国氮化硼市场规模逐渐扩大 市场集中度有望不断提升 氮化硼&#xff08;BN&#xff09;俗称为白石墨&#xff0c;是由硼原子和氮原子所构成的一种晶体材料&#xff0c;在常温条件下多表现为一种棕色或暗红色晶体。氮化硼具有导热性好、硬度大、熔点高、抗化学侵蚀性等优点&…

快来看,错过了今天就要设置为vip文章了----openEuler@2024全球发展展望与战略规划

会议主题&#xff1a;openEuler2024全球发展展望与战略规划 OpenEuler2024项目在2024年成功推出了多个长期支持&#xff08;LTS&#xff09;版本&#xff0c;标志着其在智能技术领域的全新篇章&#xff0c;并致力于构建全球性的开源新生态。以下是该项目的主要内容和成就概览&a…

【日记】软考居然一次过了(620 字)

正文 早上空闲的时候&#xff0c;上 QQ 看了一下&#xff0c;许久不见动静的系统架构设计师群有人说出分了。我想高级都出分了&#xff0c;中级应该也出来了&#xff0c;于是用手机查了一下。看到分数几乎快要泪从中来。为什么软考能一次过&#xff0c;银行从业资格证考了两三…

程序猿,你离创业还差什么

为什么想要创业&#xff1f;这是一个很简单的问题&#xff0c;不同的人有不同的答案&#xff0c;但都直指一个根源&#xff1a;获得更多的财富。其实&#xff0c;我们完全换一个角度&#xff0c;换一种心境去讲&#xff1a;为了让更多的人能够幸福&#xff0c;利益他人&#xf…

MST霍尔传感器IC-MH251,MH253,GT3144在卷发器方案中的应用

霍尔传感器驱动卷发器应用 卷发器在我们的日常生活中已经成为了不可或缺的一种生活工具&#xff0c;它时刻可以护理我们的头发&#xff0c;保养我们的发质。霍尔传感器驱动卷发器&#xff0c;那么霍尔传感器是如何运用在卷发器中的呢&#xff1f;霍尔传感器在卷发器中的工作原…

快速阅读参考文献:kimi请求出战!

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 上篇文章&#xff0c;我们为大家演示了“如何使用kimi创建论文中的流程图”。今天继续为大家介绍“使用kimi快速阅读学术参考文献”。 在学术研究的海洋中&#xff0c;文献阅读是一项基…

Windows环境下安装MySQL数据库的步骤

说明&#xff1a; 由于环境的不同&#xff0c;安装过程中可能会遇到各种各样的问题&#xff0c;不用慌&#xff0c;先根据错误提示搜索&#xff0c;多试一下。 安装前&#xff0c;请先认真看一下&#xff0c;有可能会遇到的几个问题&#xff1a; 1、证书链问题&#xff0c;一般…

【投稿优惠|稳定检索】2024年文化传播、交流与考古学国际会议 (CCEA 2024)

2024年文化传播、交流与考古学国际会议 (CCEA 2024) 2024 International Conference on Cultural Communication, Exchange, and Archaeology 【重要信息】 大会地点&#xff1a;西安 官网地址&#xff1a;http://www.icccea.com 投稿邮箱&#xff1a;iccceasub-conf.com 【注…

【深度学习驱动流体力学】采集OpenFOAM仿真数据作为AI模型训练数据集与卷积神经网络搭建到预测(一站式完整代码实现)

计算流体力学仿真之cavity(腔室)案例 目录 一.转换VTK数据文件1. `run/cavity/`2. 时间步文件夹 (`0`, `0.1`, `0.2`, ..., `0.5`)3. `cavity.OpenFOAM`4. `constant/`5. `system/`6. `VTK/`二.边界条件和边界类型数据1. `fixedWalls`2. `frontAndBack`3. `movingWall`数据内…

记录一次code-server使用latex无法刷新Pdf的BUG

一、背景 在nas上安装了ubuntu的docker&#xff0c;然后在里面安装了code-server和texlive&#xff0c;突然发现latex无法自动刷新pdf、也无法从pdf中定到文档中。 二、尝试 重启计算机、docker和nas>顺带更新了路由器固件导致路由器无WiFi了重置浏览器配置>导致了所有…

阿里1688商家数据采集软件

大镜山阿里1688商家数据采集一款采集阿里巴巴1688.com商家数据的软件&#xff0c;采集的数据包括店铺名称、联系人姓名、手机号码等。 一、大镜山阿里1688商家数据采集特色 — 大镜山阿里1688商家数据采集一款采集阿里巴巴1688.com商家数据的软件&#xff0c;采集的数据包括店…

一键系统重装教程:电脑重装系统,5个方法轻松恢复电脑

在日常使用电脑的过程中&#xff0c;难免会遇到系统故障、运行缓慢或者病毒感染等问题&#xff0c;重装系统成为解决这些问题的有效途径。然而&#xff0c;对于许多小伙伴来说&#xff0c;电脑重装系统似乎是一项复杂且耗时的任务。其实&#xff0c;只要掌握了正确的方法&#…

深圳比创达电子|EMC与EMI测试整改:从问题识别到效果验证

在现代电子设备的研发和生产过程中&#xff0c;电磁兼容性&#xff08;EMC&#xff09;和电磁干扰&#xff08;EMI&#xff09;的问题日益凸显。随着技术的不断进步&#xff0c;电子设备的集成度越来越高&#xff0c;工作频率也逐步提升&#xff0c;这使得电磁环境的复杂性不断…

react 使用styled-componts

一、安装 npm i styled-components二、直接使用 import React from react import styled from styled-components const Node styled.divcolor:red; export default function(){return (<Node>this is test content</Node>); };三、官网 https://styled-compon…

自研一款共享集群数据库,有多难?

共享集群数据库管理系统是一种单库多实例的多活数据库管理系统&#xff0c;用户连接任意实例都可以访问同一个数据库&#xff0c;具备透明多写、高可用、高性能等特性。共享集群技术因其开发难度高&#xff0c;一直被国外垄断&#xff0c;也被称为数据库领域的“塔尖”技术。 2…

设计模式之【适配器模式】

类适配器实现&#xff08;继承&#xff09; 类适配器通过继承来实现适配器功能 // 目标接口 public interface Target {void request(); }// 被适配者 public class Adaptee {public void specificRequest() {System.out.println("Adaptee: specificRequest");} }/…

不会还有人没有用过git rebase合并分支吧?一文详解git merge与git rebase区别

文章目录 什么是git merge&#xff1f;使用git merge的场景git merge的示例 什么是git rebase&#xff1f;使用git rebase的场景git rebase的示例 git merge与git rebase的区别如何选择git merge和git rebase&#xff1f;结论 &#x1f389;欢迎来到Java学习路线专栏~探索Java中…

JavaScript全解:从基础到高级,掌握每一个知识点

引言&#xff1a; JavaScript是一种广泛使用的脚本语言&#xff0c;主要用于Web浏览器&#xff0c;但近年来也扩展到了服务器端&#xff08;Node.js&#xff09;和其他领域。它允许开发者创建交互式的网页&#xff0c;处理数据&#xff0c;控制用户界面&#xff0c;甚至构建完…