hive小练习 拓展

news2025/1/12 21:10:06

基于hive表小练习-CSDN博客的拓展

-- 1. 查询没有参与任意一门考试的学生姓名

LEFT JOIN操作时,数据库系统会从左表(即LEFT JOIN关键字左边的表)返回所有的行,
    即使在右表(即LEFT JOIN关键字右边的表)中没有匹配的行。
    对于那些在右表中没有匹配项的左表行,结果集中的右表列将填充为NULL值。
    因为分数表中的学生id不全

      左表t1 学生表  右表t2 分数表
 

      select t1.stu_name
          from school.student_info t1
          left join school.score_info t2
          on t1.stu_id=t2.stu_id
          where t2.stu_id is null;

-- 3. 查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列
  

  select course_id,avg(score) as average_score from school.score_info group by course_id order by average_score asc,course_id desc;

 4. 查询所有课程成绩均小于60分的学生的学号、姓名
        --1.查询课程分数小于60分的学生id
        select stu_id from school.score_info where score< 60;
        --2.与学生表连接 查询学生的学号姓名
        
 

select t1.stu_id,t1.stu_name from school.student_info t1
	inner join (select distinct stu_id from school.score_info where score< 60) t2
	on t1.stu_id=t2.stu_id;

5. 查询有两门以上的课程不及格的同学的姓名及其平均成绩
        --1.查询两门以上课程不及格的学生id和平均成绩
        select stu_id,avg(score) as average_score from school.score_info group by stu_id having count(case when score<60 then 1 else 0 end)>=2;

SUM(CASE...WHEN...THEN...ELSE...END)构造,它会对每条记录根据条件进行评估:如果成绩小于60,则计为1;否则,计为0。然后,SUM函数会累加每组(每个学生)中所有计为1的值,如果这个总和大于等于2,说明该学生有两门或以上的课程不及格。

这里的结果集是


        --2.与学生表连接 查询学生的学号姓名 

select t1.stu_id,t1.stu_name from school.student_info t1
	inner join (select distinct stu_id from school.score_info where score< 60) t2
	on t1.stu_id=t2.stu_id;

-- 6. 查询平均成绩大于85的所有学生的学号、姓名和平均成绩
        --1.查询平均成绩大于85分的学生学号
        select stu_id,avg(score) as average_score from school.score_info group by stu_id having avg(score)>85;


        --2.与学生表链接,查询学生姓名
        select t1.stu_id,t1.stu_name,t2.average_score from school.student_info t1
        inner join (select stu_id,avg(score) as average_score from school.score_info group by stu_id having avg(score)>85) t2
        on t1.stu_id = t2.stu_id;

 7. 查询出每门课程的及格人数和不及格人数
        --1.每门课程:按课程分组 查询每门课程id的及格人数
        select course_id,sum(case when score>=60 then 1 else 0 end) as pass_count,sum(case when score<60 then 1 else 0 end) as fail_count from school.score_info group by course_id;

结果集


        --2.与课程表连接,查询对应的课程名
        select t1.course_id,t1.course_name,t2.pass_count,t2.fail_count from school.course_info t1
        inner join (select course_id,sum(case when score>=60 then 1 else 0 end) as pass_count,sum(case when score<60 then 1 else 0 end) as fail_count from school.score_info group by course_id) t2
        on t1.course_id = t2.course_id
        ;

- 8. 课程编号为"01"且课程分数小于60,按分数降序排列的学生信息
        --1.从分数表中查找学生id
        select stu_id from school.score_info where course_id='01' and score <60;


        --2.与学生表连接
        select * from school.student_info t1
        inner join (select stu_id,score from school.score_info where course_id='01' and score <60) t2
        on t1.stu_id = t2.stu_id
        order by t2.score
        ;

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

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

相关文章

Python便捷数据处理库之Baisou使用详解

概要 Baisou,中文译名为“便捷数据处理库”,是一个基于Python的库,旨在简化数据处理和分析的过程。它拥有丰富的数据类型和函数,可以帮助开发者轻松地处理数据,进行统计分析,以及实现复杂的数据转换。Baisou的设计理念是“简单、高效、易用”,让开发者能够更加专注于业…

无线领夹麦克风哪个牌子好,口碑最好的麦克风品牌良心推荐

在自媒体行业迅速发展的背景下&#xff0c;无线领夹麦克风已成为提升音频质量的重要工具。它能够在多种环境中保持语音的清晰度&#xff0c;有效增强创作效率和作品的专业性。市场上有许多无线麦克风产品&#xff0c;但并非所有都兼具高性能与合理价格。基于我的个人使用经验&a…

Firewalld 防火墙基础

Firewalld 防火墙基础 一、Firewalld概述firewalld 简介firewalld 和 iptables 的关系firewalld 与 iptables service 的区别 二、Firewalld 网络区域区域介绍Firewalld数据处理流程 三、Firewalld 防火墙的配置方法firewall-config 图形工具“区域”选项卡“服务”选项卡改变防…

5.3.3、二维数组案例-考试成绩统计

代码 #include <iostream> using namespace std; #include <string>int main() {//二维数组案例-考试成绩统计//1、创建二维数组int scores[3][3] {{100,100,100},{90,50,100},{60,70,80},};string names[3] { "张三","李四","王五&quo…

基于微服务智能推荐健康生活交流平台的设计与实现(SpringCloud SpringBoot)+文档

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

MATLAB—— 流程语句(1)

一、if elseif else end 语句 例子 x 88; % x表示成绩 if x>90 && x < 100 dj 1; % 等级为1级 elseif x>80 && x < 90 dj 2; % 等级为2级 elseif x>60 && x < 80 dj 3; % 等级为…

信息打点web篇---前端js打点

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理前端js代码的打点思路 本文只为学习安全使用&#xff0c;切勿用于非法用途。 一切未授权的渗透行为都是违法的。 前端js打点概念与目的 javascript文件属于前端语言&#xff0c;也就是说他的代码都…

AI商品图生成定制外包公司

&#x1f308; 深度剖析AI商品图生成定制外包公司 —— 触站AI&#xff0c;智能图像的魔法师 &#x1f9d9;‍♂️ &#x1f389;触站AI&#xff0c;以技术创新引领行业变革 &#x1f389;在这个AI技术飞速发展的时代&#xff0c;触站AI以其专业和专注&#xff0c;成为了深圳乃…

容嬷嬷给紫薇过生日:鬼畜搭台,AI带货

刚入7月&#xff0c;短视频平台已被AI视频续写占领。 类似于紫薇在地牢里被容嬷嬷喂西瓜、喂鸡翅、喂蛋糕。张学友在《旺角卡门》的经典镜头突然给你微笑、嘟嘴、甚至祝你生日快乐。甚至&#xff0c;还有吴京从打斗戏变成亲吻戏。 在AI续写的短视频里&#xff0c;你永远也想象…

Python小练习05

一 绘制如下图形。 #Q1 import turtle as t def draw(n):for i in range(n):t.left(30)t.fd(100)t.left(120)t.fd(100)t.left(120)t.fd(100)t.left(120)t.fd(100)t.right(90) t.penup() t.goto(-150,20) t.speed(0) t.pendown() t.pencolor("red") t.pensize(5) draw…

权限控制权限控制权限控制权限控制权限控制

1.权限的分类 视频学习&#xff1a;https://www.bilibili.com/video/BV15Q4y1K79c/?spm_id_from333.337.search-card.all.click&vd_source386b4f5aae076490e1ad9b863a467f37 1.1 后端权限 1. 后端如何知道该请求是哪个用户发过来的 可以根据 cookie、session、token&a…

5.2.3、冒泡排序

代码 #include <iostream> using namespace std;int main() {//冒泡排序升序int arr[9] { 4,2,8,0,5,7,1,3,9 };cout << "排序前&#xff1a;" << endl;for (int i 0; i < 9; i){cout << arr[i] << " ";}cout <<…

python-图像模糊处理(赛氪OJ)

[题目描述] 给定 n 行 m 列的图像各像素点的灰度值&#xff0c;要求用如下方法对其进行模糊化处理&#xff1a; 1. 四周最外侧的像素点灰度值不变。 2. 中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均&#xff08;四舍五入&#xff09;输入&#xff…

pydub、ffmpeg 音频文件声道转换、采样率更改

转换成mono单声道 from pydub import AudioSegment# 加载MP3文件 mp3_file_path r"E:\allchat\output.wav" audio_segment AudioSegment.from_mp3(mp3_file_path)# 转换为单声道 audio_segment audio_segment.set_channels(1)# 导出为单声道MP3文件 mono_mp3_fil…

LinuxRT启动Veristand项目的配置文件

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

c语言回顾-数组(全网最详细,哈哈哈)

目录 前言&#xff0c;和小编一起感受数组的魅力&#xff01;&#xff01;&#xff01; 1.数组的概念 2.一维数组的创建和初始化 2.1数组创建 2.2数组的初始化 2.3数组的类型 3.一维数组的使用 3.1数组下标 3.2数组元素的输入输出 小结&#xff1a; 4.一维数组在内存…

SpringBoot环境集成 sms4j短信聚合

SpringBoot环境集成 sms4j短信聚合 官方文档 前言 在正式使用sms4j短信功能之前&#xff0c;请详细阅读本文档&#xff0c;依照本篇流程进行操作和配给&#xff0c;即可解决大部分问题&#xff0c;如对我们的文档有建议&#xff0c;请联系开发者团队&#xff0c; 我们将根据可…

Spring与Quartz整合

Quartz框架是一个轻量级的任务调度框架&#xff0c;它提供了许多内置的功能&#xff0c;包括&#xff1a;支持作业的调度、集群调度、持久化、任务持久化、任务依赖、优先级、并发控制、失败重试等。同时也支持自定义作业类型和触发器类型。与Spring整合步骤如下&#xff1a; …

怎么参与场外期权?

今天期权懂带你了解怎么参与场外期权&#xff1f; 目前个人投资者暂时还不能直接参与场外个股期权&#xff0c;因为场外个股期权现在只能机构来进行交易。 所以个人投资者目前只能通过机构通道来进行操作&#xff0c;类似期权懂&#xff0c;找到期权懂经理&#xff0c;然后通…

思维,CF 739A - Alyona and mex

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 739A - Alyona and mex 二、解题报告 1、思路分析 我们考虑区间mex运算的值最大也就是区间长度&#xff0c;所以我们最大值的上界就是所有区间中的最小长度&#xff0c;假如记为mi 我们一定可以构造出答案…