牛客网刷题学习SQL(三)

news/2024/11/28 10:47:32/

SQL23 统计每个学校各难度的用户平均刷题数

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

首先分析题目:

想要计算一些参加了答题的不同学校不同难度的用户平均答题量
不同学校: group by 学校
不同难度: group by 难度
平均答题量:注意用户去重,还有指定question_id、device_id是那个表的属性,不然会报列属性不明确的错

count(qpd.question_id)/count(distinct qpd.device_id) avg_answer_cnt

** 注意一下题目中的细节:
请你写一个SQL查询,计算不同学校、不同难度的用户平均答题量,根据示例,你的查询应返回以下结果(结果在小数点位数保留4位,4位之后四舍五入):**
所以平均答题代码需要修改:其实不修改也可以运行成功,但是细节可以减少真正开发的bug发生

round(count(qpd.question_id)/count(distinct qpd.device_id),4) avg_answer_cnt

后面就通过左连接查询

select university,difficult_level,
round(count(qpd.question_id)/count(distinct qpd.device_id),4) avg_answer_cnt
from question_practice_detail qpd 
left join user_profile up on qpd.device_id=up.device_id
left join question_detail qd on qpd.question_id = qd.question_id
group by university,difficult_level

总结一下:
相对前面的练习这次多使用了round函数

round函数

SQL 中的 ROUND() 函数是用于对数字进行四舍五入的函数,其语法如下:

ROUND(number, decimal_places)

其中,number 表示要进行四舍五入的数字,decimal_places 表示要保留的小数位数。如果 decimal_places 为正数,则表示保留的小数位数;如果 decimal_places 为负数,则表示舍入到小数点左侧的位数。

例如,以下 SQL 查询语句将 2.34567 这个数字四舍五入保留两位小数:

SELECT ROUND(2.34567, 2);

查询结果为:

2.35

需要注意的是,如果 number 的小数位数小于 decimal_places,则结果将补齐为 decimal_places 位,例如:

SELECT ROUND(2.3, 4);

查询结果为:

2.3000

在实际应用中,ROUND() 函数通常用于数据统计、报表生成等场合,可以对数字进行格式化处理,使其更符合人类的阅读习惯。


http://www.ppmy.cn/news/105137.html

相关文章

机器视觉工程师,如何快速找到女朋友攻略(不提供海王模式,需要的朋友得加钱)

视觉人机器视觉培训-缺陷检测项目-食品行业草鸡蛋外观检测 找女朋友,千万不要"守株待兔",更重要的是"主动出击"。 本群主,本UP主,正经人。 某粉丝:你不能出一次差 在当地找一个嘛 我对以上行为坚决不支持, 第一:犯法行为做不得 第二:对自己爱人不忠…

Redis高级篇 - 分布式缓存

分布式缓存 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题: 1.Redis持久化 Redis有两种持久化方案: RDB持久化AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file(Redis数据备份文件)&#xff0c…

微服务实战项目-学成在线-内容管理模块(有项目实战实现)

内容管理模块 1 模块需求分析 1.1 什么是需求分析 在百度百科中对需求分析的定义如下: 需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要…

Apache Impala(1):Impala简介

1 Impala 基本介绍 impala 是 cloudera 提供的一款高效率的 sql 查询工具,提供实时的查询效果,官方测试性能比 hive 快 10 到 100 倍,其 sql 查询比 sparkSQL 还要更加快速,号称是当前大数据领域最快的查询 sql 工具&#xff0c…

纸牌博弈问题--动态规划(java)

排成一条直线的纸牌博弈问题 纸牌博弈题目描述暴力递归递归 缓存动态规划动态规划专题 纸牌博弈题目描述 给定一个整型数组arr, 代表数值不同的纸牌排成一条线 玩家A和玩家B依次拿走每张纸牌 规定玩家A先拿, 玩家B后拿 但是每个玩家每次只能拿走最左或最…

35.c++动态内存分配new delete

目录 1. c语言动态内存分配 1.malloc函数:malloc函数用于在堆上动态分配内存,并返回指向分配内存的指针。 2.free函数:free函数用于释放通过malloc函数分配的内存。 使用malloc和free时需要注意以下几点: 2.C动态内存分配 1…

AIGC技术研究与应用 ---- 下一代人工智能:新范式!新生产力!(2-大模型发展历程)

文章大纲 按照目标不同, AI大模型可分为四类,多模态为未来方向NLP 大模型CV大模型科学计算大模型多模态大模型解码预训练语言模型(Decoder-only Pre-trained Models)GPT-1GPT-2GPT-3大模型的演技历史Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Be…

打开复制过去的virtualbox文件之后,在打开时出现只有logs文件的解决方法

文章目录 前言 问题一 打开方式 注意事项 问题二 解决方法 总结 前言 打开复制过去的virtualbox文件之后,在打开时出现只有logs文件的解决方法 问题一 virtualbox虚拟机拷贝到其他电脑上面如何打开? 打开方式 将 VirtualBox 虚拟机拷贝到其他…