高频SQL 50题 | 聚合

高频SQL 50题 | 聚合

🌈个人主页: Hygge_Code🔥热门专栏:从0开始学习Java | Linux学习| 计算机网络💫个人格言: “既然选择了远方,便不顾风雨兼程”

在这里插入图片描述

文章目录

P570. 至少有5名直接下属的经历

对应的SQL语句:

在这里插入图片描述

P1934.确认率 🍂

在这里插入图片描述


在这里插入图片描述

对应的SQL语句:

解法一:使用 SUM / COUNT

解法二:使用VAG

以下是我一开始时写的SQL语句(存在很大的问题):

SELECT S.user_id,ROUND(COUNT(action='confirmed')/COUNT(C.user_id),2)AS confirmation_rate FROM Signups S LEFTJOIN Confirmations C ON S.user_id = C.user_id GROUPBY S.user_id 
  • 问题1:COUNT(action = 'confirmed') 无法正确统计确认次数
    • COUNT() 函数的逻辑是统计括号内「非 NULL 的行数」,而非「统计条件为 TRUE 的行数」:
      • action = 'confirmed'TRUE(满足确认)→ COUNT 算 1;
      • action = 'confirmed'FALSE(如 timeout/unconfirmed)→ COUNT 仍算 1(FALSE 不是 NULL);
    • 最终 COUNT(action = 'confirmed') 会等于 COUNT(C.user_id)(总操作次数),完全无法区分“确认”和“非确认”操作。

  • 问题2:MySQL 中「数值 ÷ 0」会直接返回 NULL
    • 若用户在 Confirmations 中无记录 → C.user_id 为 NULL → COUNT(C.user_id) = 0,MySQL 中「数值 ÷ 0」会直接返回 NULL

P620. 有趣的电影

在这里插入图片描述

对应的SQL语句:

取模 %

在这里插入图片描述

P1251. 平均售价

在这里插入图片描述


在这里插入图片描述

对应的SQL语句:

在这里插入图片描述

P1075. 项目员工 I

在这里插入图片描述


在这里插入图片描述

对应的SQL语句:

在这里插入图片描述

P1533. 各赛事的用户注册率 🍂

在这里插入图片描述
在这里插入图片描述

错误语句:

SELECT R.contest_id, ROUND( COUNT(R.user_id) / (SELECT COUNT(*) FROM Users) * 100, 2 ) AS percentage FROM Users U LEFT JOIN Register R ON U.user_id = R.user_id GROUP BY contest_id ORDER BY percentage DESC, contest_id ASC 
在这里插入图片描述
错误原因:忽略了通过GROUP BY contest_id 分组后,若有User没有任何分组,则其会留下一个NULL值,而这些NULL值就会形成一个分组,后续也会参与进计算里:COUNT(NULL) = 0解决方法:加上WHERE contest_id IS NOT NULL

对应的SQL语句:

在这里插入图片描述

P1211. 查询结果的质量和占比

在这里插入图片描述


在这里插入图片描述

对应的SQL语句:

在这里插入图片描述

P1193. 每月交易 I

在这里插入图片描述

对应的SQL语句:

提取日期函数 DATE_FORMAT

在这里插入图片描述

P1174. 即时食物配送 II

在这里插入图片描述


在这里插入图片描述

对应的SQL语句:

在这里插入图片描述

P550. 游戏玩法分析 IV 🐦‍🔥🐦‍🔥🐦‍🔥

在这里插入图片描述

对应的SQL语句:

在这里插入图片描述

如果我的内容对你有帮助,请 点赞 , 评论 , 收藏 。创作不易,大家的支持就是我坚持下去的动力!

在这里插入图片描述

Read more

融资3000万美元,服务2000+团队!听Dify专家拆解如何把AI从Demo变生产力

融资3000万美元,服务2000+团队!听Dify专家拆解如何把AI从Demo变生产力

整理 | 梦依丹      出品 | ZEEKLOG(ID:ZEEKLOGnews) 近日,开源 AI 应用开发平台 Dify 宣布完成 3000 万美元 Pre-A 轮融资,由红杉领投,GL Ventures、Alt-Alpha Capital、五源资本、瑞穗力合投资和 NYX Ventures 跟投,目前公司估值已达 1.8 亿美元。 这家从“原型工具”杀出来的黑马,如今已服务全球超 140 万台设备、2000+ 团队和 280 家企业(包括马士基、安克创新等),正朝着“全球 AI 应用工作流标准定义者”狂奔。 那么,Dify 是如何用“

By Ne0inhk
内存、性能、并发、生态:Rust 凭什么与主流语言同台竞技?

内存、性能、并发、生态:Rust 凭什么与主流语言同台竞技?

随着现代软件系统对安全性、性能和并发处理能力的要求不断提升,编程语言的设计理念和技术特性也在持续演进。Rust作为一门相对年轻的系统编程语言,以其独特的内存安全、零成本抽象、并发可靠特性迅速崛起,成为与C/C++、Java、Go等主流语言同台竞技的重要选项。本文从工程实践中最核心的四个维度——内存管理、性能表现、并发模型和生态系统,结合代码示例,剖析Rust与主流编程语言的差异,为开发者的技术选型提供参考。 目录 一、内存管理 1.1 Rust:编译期所有权机制 1.2 C++:手动管理+智能指针 1.3 Java:垃圾回收自动管理 1.4 Go:并发标记清除GC 二、性能表现 2.1 Rust与C++ 2.2 Java 2.3 Go 三、

By Ne0inhk
【大数据分析 | 深度学习】在Hadoop上实现分布式深度学习

【大数据分析 | 深度学习】在Hadoop上实现分布式深度学习

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈智能大数据分析 ⌋ ⌋ ⌋ 智能大数据分析是指利用先进的技术和算法对大规模数据进行深入分析和挖掘,以提取有价值的信息和洞察。它结合了大数据技术、人工智能(AI)、机器学习(ML)和数据挖掘等多种方法,旨在通过自动化的方式分析复杂数据集,发现潜在的价值和关联性,实现数据的自动化处理和分析,从而支持决策和优化业务流程。与传统的人工分析相比,智能大数据分析具有自动化、深度挖掘、实时性和可视化等特点。智能大数据分析广泛应用于各个领域,包括金融服务、医疗健康、零售、市场营销等,帮助企业做出更为精准的决策,提升竞争力。 【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/Intelligent_bigdata_analysis。 文章目录 * 前言 * 一、Submarine(Hadoop生态系统) * (一)Submarine 介绍 * (二)中文演讲介绍 * (三)Submarine

By Ne0inhk
【手写数据库内核miniToadb】第2天 与数据库交互的桥梁--SQL解绍

【手写数据库内核miniToadb】第2天 与数据库交互的桥梁--SQL解绍

专栏内容:手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者,在开源无限的公众号更新会更及时。 一、概述 上一节通过一个简单的C语言程序来模拟数据库的行为,从处理能力来看,也有创建表,插入、删除、更新、查询等操作,但是与大家认为的数据库差距很大。 关系型数据库的一个很明显的特点,就是有标准的操纵数据库的语言,它就是常用的SQL。我们来开发的数据库内核支持这一标准SQL,这样才能符合数据库的一个审美。 说到语言,就不得不做语言的解析了,类似于自然语经过人脑分析后,转换为一系列人的动作行为;而数据库中的解析模块要把用户的SQL表达的意图经过词法和语法分析,转换成程序可处理的数据结构。 这听起来还是很有意思的,那么我们现在就开始这第一步吧。 在开始之前再补充一些内容,整个开发过程主要使用C语言开发,在解析中会用到正则表达式和上下文无关语法,它们占比非常小。 开发所用的系统是CentOS 8.2,当然其它linux版本可能命令会有差异,Centos系列还是比较一致,可以看

By Ne0inhk