当前位置: 首页 > news >正文

大数据面试SQL题-笔记01【运算符、条件查询、语法顺序、表连接】

  1. 大数据面试SQL题复习思路一网打尽!(文档见评论区)_哔哩哔哩_bilibili
  2. Hive SQL 大厂必考常用窗口函数及相关面试题

  1. 大数据面试SQL题-笔记01【运算符、条件查询、语法顺序、表连接】
  2. 大数据面试SQL题-笔记02【...】

目录

01、力扣网-sql题

1、高频SQL50题(基础版)

2、高频SQL50题(进阶版)

02、牛客网-sql题

2.1、运算符

2.2、条件查询

2.3、语法顺序

2.4、表连接方式

2.5、语法元素

2.5.1、union

2.5.2、case

2.5.3、if / is null

2.5.4、日期函数-DATEDIF


HSQL绝对重点

三、窗口函数用法举例

  1. 序号函数:row_number() / rank() / dense_rank()(面试重点)
  2. 分布函数:percent_rank() / cume_dist()
  3. 前后函数 lag(expr, n, defval)、lead(expr, n, defval)(面试重点)
  4. 头尾函数:FIRST_VALUE(expr)、LAST_VALUE(expr)
  5. 聚合函数+窗口函数联合使用

01、力扣网-sql题

力扣sql题

1、高频SQL50题(基础版)

没写完 ...

2、高频SQL50题(进阶版)

没写完 ...

02、牛客网-sql题

非技术快速入门

2.1、运算符

2.2、条件查询

_:匹配任意一个字符;
SELECT * FROM 学生表 WHERE name LIKE '张__'//查询姓“张”且名字是3个字的学生姓名。%:匹配0个或多个字符;
SELECT * FROM 学生表 WHERE 姓名 LIKE ‘张%’//查询学生表中姓‘张’的学生的详细信息。[ ]:匹配[ ]中的任意一个字符(若要比较的字符是连续的,则可以用连字符“-”表 达 );
SELECT * FROM 学生表 WHERE 姓名 LIKE '[张李刘]%’//查询学生表中姓‘张’、姓‘李’和姓‘刘’的学生的情况。[^ ]:不匹配[ ]中的任意一个字符。
SELECT * FROM 学生表 WHERE 学号 LIKE '%[^235]' //从学生表表中查询学号的最后一位不是2、3、5的学生信息。

2.3、语法顺序

SELECT columns
FROM table_name
WHERE conditions
GROUP BY columns
HAVING conditions
ORDER BY columns DESC
LIMIT num;
-------------------------------
SELECT * | 字段列表 [as 别名]
FROM 表名
[WHERE 子句]
[GROUP BY 子句]
[HAVING 子句]
[ORDER BY 子句]
[LIMIT 子句];

在 SQL 查询中,通常的语法顺序是这样的:

  1. SELECT:选择要查询的列。
  2. FROM:指定查询的数据表。
  3. WHERE:对数据进行筛选,根据指定的条件过滤行。
  4. GROUP BY:按照指定的列对结果进行分组。
  5. HAVING:对分组后的结果应用条件过滤。
  6. ORDER BY:指定结果的排序顺序。
  7. LIMIT:限制返回的行数。

虽然在实际的 SQL 查询中,您不一定需要每个子句都使用,但是一般来说,这是它们的一般顺序。

至于 AND,它是用于连接多个条件的逻辑运算符。它通常出现在 WHERE 子句中,用于结合多个条件以过滤行。

SELECT * FROM table_name WHERE condition1 AND condition2;

在这种情况下,AND 的使用是在 WHERE 子句中,但它可以根据需要出现在其他地方。

牛客网——SQL19 分组过滤练习题

select

    university,

    avg(question_cnt) as avg_question_cnt,

    avg(answer_cnt) as avg_answer_cnt

from

    user_profile

group by

    university

having #聚合函数结果作为筛选条件时,不能用where,而是用having语法

    avg_question_cnt < 5

    or avg_answer_cnt < 20;

3.3.3 总结内连接查询步骤:

1) 确定查询哪些表

2) 确定表连接的条件

3) 确定查询的条件

4) 确定查询的字段

2.4、表连接方式

  1. 内连接(Inner Join):返回匹配连接条件的行,包括两个表中同时出现的行。
  2. 左连接(Left Join 或 Left Outer Join):返回左表中的所有行,以及右表中与左表匹配的行。如果右表中没有匹配的行,则返回 NULL 值。
  3. 右连接(Right Join 或 Right Outer Join):返回右表中的所有行,以及左表中与右表匹配的行。如果左表中没有匹配的行,则返回 NULL 值。
  4. 全连接(Full Join 或 Full Outer Join):返回左表和右表中的所有行,如果某行在其中一个表中没有匹配的行,则返回 NULL 值。
  5. 自连接(Self Join):将表与自身连接,通常用于比较表中的不同行。

除了这些基本的连接方式外,还有一些其他变体和组合,但这些是最常见的表连接方式。

这些连接方式可以组合使用,因此可能会导致多个表同时参与连接。例如,在一个查询中,您可以使用多个内连接,左连接,右连接或全连接。

2.5、语法元素

2.5.1、union

UNION 是用于合并两个或多个 SELECT 语句的结果集的操作符。它用于将多个查询结果合并为单个结果集,并且会自动去除重复的行。UNION 用于组合两个或多个查询的结果集,并返回一个包含所有查询结果的单个结果集。

分别查看&结果不去重:所以直接使用两个条件的or是不行的,直接用union也不行,要用union all,分别去查满足条件1的和满足条件2的,然后合在一起不去重。

  1. UNIONUNION 操作符用于合并两个查询结果集,并且会自动去除重复的行。如果两个查询的结果集中存在相同的行,则 UNION 只会返回一次该行。UNION 不会返回重复的行。
  2. UNION ALLUNION ALL 也用于合并两个查询结果集,但是它不会去除重复的行。即使两个查询的结果集中存在相同的行,UNION ALL 也会将它们都返回。UNION ALL 返回所有行,包括重复的行。
select device_id, gender, age, gpa
from user_profile
where university = '山东大学'union allselect device_id, gender, age, gpa
from user_profile
where gender = 'male';

2.5.2、case

CASEWHEN 简单表达式1 THEN 结果表达式1WHEN 简单表达式2 THEN 结果表达式2 …WHEN 简单表达式n THEN 结果表达式n[ ELSE 结果表达式n+1 ]
END
----------------------------------------------------
SELECTCASEWHEN GRADE BETWEEN 85 AND 100 THEN '优'WHEN GRADE BETWEEN 70 AND 84  THEN '良'WHEN GRADE BETWEEN 60 AND 69  THEN '及格'ELSE '不及格'END 等级,COUNT(*) 人数
FROMSC
GROUP BYCASEWHEN GRADE BETWEEN 85 AND 100 THEN '优'WHEN GRADE BETWEEN 70 AND 84  THEN '良'WHEN GRADE BETWEEN 60 AND 69  THEN '及格'ELSE '不及格'END

2.5.3、if / is null

#if判断
SELECT IF(age < 25 OR age IS NULL, '25岁以下', '25岁及以上') age_cut, COUNT(device_id) Number
FROM user_profile
GROUP BY age_cut
---------------------------------
SELECTIF (age < 25 OR age IS NULL,'25岁以下','25岁及以上') age_cut,COUNT(device_id) Number
FROMuser_profile
GROUP BYage_cut;
---------------------------------
SELECTdevice_id,gender,IF (age is null, '其他',IF (age < 20, '20岁以下',IF (age <= 24, '20-24岁', '25岁及以上'))) age_cut
FROMuser_profile;

2.5.4、日期函数-DATEDIFF

MySQL 中的 DAY()MONTH()YEAR() 函数用于从给定的日期中提取日、月和年,返回类型:int。

selectday (date) as day,count(question_id) as question_cnt
fromquestion_practice_detail
wheremonth (date) = 8and year (date) = 2021
group bydate;

DATEDIFF() 是 MySQL 中的日期函数,用于计算两个日期之间的天数差异。它的语法如下:DATEDIFF(date1, date2)

其中,date1date2 是要比较的两个日期或日期/时间表达式。函数返回 date1 减去 date2 的结果,以天为单位的差值。

例如,假设有两个日期 date1date2,你可以使用 DATEDIFF() 函数来计算它们之间的天数差:

SELECT DATEDIFF('2024-04-26', '2024-04-20'); -- 返回 6

在这个例子中,结果是 6,因为从 2024-04-202024-04-26 之间相隔了 6 天。

ヾ(◍°∇°◍)ノ゙加油~

相关文章:

大数据面试SQL题-笔记01【运算符、条件查询、语法顺序、表连接】

大数据面试SQL题复习思路一网打尽&#xff01;(文档见评论区)_哔哩哔哩_bilibiliHive SQL 大厂必考常用窗口函数及相关面试题 大数据面试SQL题-笔记01【运算符、条件查询、语法顺序、表连接】大数据面试SQL题-笔记02【...】 目录 01、力扣网-sql题 1、高频SQL50题&#xff08…...

零基础自学爬虫技术该从哪里开始入手?

零基础自学爬虫技术可以从以下几个方面入手&#xff1a; 一、学习基础编程语言 Python 是爬虫开发的首选语言&#xff0c;因此首先需要学习 Python 编程语言的基础知识。这包括&#xff1a; 语法基础&#xff1a;学习 Python 的基本语法&#xff0c;如变量定义、数据类型、控…...

CV11_模型部署pytorch转ONNX

如果自己的模型中的一些算子&#xff0c;ONNX内部没有&#xff0c;那么需要自己去实现。 1.1 配置环境 安装ONNX pip install onnx -i https://pypi.tuna.tsinghua.edu.cn/simple 安装推理引擎ONNX Runtime pip install onnxruntime -i https://pypi.tuna.tsinghua.edu.cn/si…...

Redis的使用(四)常见使用场景-缓存使用技巧

1.绪论 redis本质上就是一个缓存框架&#xff0c;所以我们需要研究如何使用redis来缓存数据&#xff0c;并且如何解决缓存中的常见问题&#xff0c;缓存穿透&#xff0c;缓存击穿&#xff0c;缓存雪崩&#xff0c;以及如何来解决缓存一致性问题。 2.缓存的优缺点 2.1 缓存的…...

BERT架构的深入解析

BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是由Google在2018年提出的一种基于Transformer架构的预训练模型&#xff0c;迅速成为自然语言处理&#xff08;NLP&#xff09;领域的一个里程碑。BERT通过双向编码器表示和预训练策略&am…...

数字孪生技术如何助力低空经济飞跃式发展?

一、什么是低空经济&#xff1f; 低空经济&#xff0c;是一个以通用航空产业为主导的经济形态&#xff0c;它涵盖了低空飞行、航空旅游、航空物流、应急救援等多个领域。它以垂直起降型飞机和无人驾驶航空器为载体&#xff0c;通过载人、载货及其他作业等多场景低空飞行活动&a…...

HTTP背后的故事:理解现代网络如何工作的关键(二)

一.认识请求方法(method) 1.GET方法 请求体中的首行包括&#xff1a;方法&#xff0c;URL&#xff0c;版本号 方法描述的是这次请求&#xff0c;是具体去做什么 GET方法&#xff1a; 1.GET 是最常用的 HTTP 方法. 常用于获取服务器上的某个资源。 2.在浏览器中直接输入 UR…...

数据流通环节如何规避安全风险

由于参与数据流通与交易的数据要素资源通常是经过组织加工的高质量数据集&#xff0c;甚至可能涉及国家核心战略利益&#xff0c;一旦发生针对数据流通环节的恶意事件&#xff0c;将造成较大负面影响&#xff0c;对数据要素市场的价值激活造成潜在威胁。具体来说&#xff0c;数…...

部署k8s 1.28.9版本

继上篇通过vagrant与virtualBox实现虚拟机的安装。笔者已经将原有的vmware版本的虚拟机卸载掉了。这个场景下&#xff0c;需要重新安装k8s 相关组件。由于之前写的一篇文章本身也没有截图。只有命令。所以趁着现在。写一篇&#xff0c;完整版带截图的步骤。现在行业这么卷。离…...

实验二:图像灰度修正

目录 一、实验目的 二、实验原理 三、实验内容 四、源程序和结果 源程序(python): 结果: 五、结果分析 一、实验目的 掌握常用的图像灰度级修正方法,包括图象的线性和非线性灰度点运算和直方图均衡化法,加深对灰度直方图的理解。掌握对比度增强、直方图增强的原理,…...

bash: ip: command not found

输入&#xff1a; ip addr 报错&#xff1a; bash: ip: command not found 报错解释&#xff1a; 这个错误表明在Docker容器中尝试执行ip addr命令时&#xff0c;找不到ip命令。这通常意味着iproute2包没有在容器的Linux发行版中安装或者没有正确地设置在容器的环境变量PA…...

全开源TikTok跨境商城源码/TikTok内嵌商城/前端uniapp+后端+搭建教程

多语言跨境电商外贸商城 TikTok内嵌商城&#xff0c;商家入驻一键铺货一键提货 全开源完美运营 海外版抖音TikTok商城系统源码&#xff0c;TikToK内嵌商城&#xff0c;跨境商城系统源码 接在tiktok里面的商城。tiktok内嵌&#xff0c;也可单独分开出来当独立站运营 二十一种…...

云原生、Serverless、微服务概念

云原生&#xff08;Cloud Native&#xff09; 云原生是一种设计和构建应用程序的方法&#xff0c;旨在充分利用云计算的优势。云原生应用程序通常具有以下特征&#xff1a; 容器化&#xff1a;应用程序和其依赖项被打包在容器中&#xff0c;确保一致的运行环境。常用的容器技…...

Windows上LabVIEW编译生成可执行程序

LabVIEW项目浏览器(Project Explorer)中的"Build Specifications"就是用来配置项目发布方法的。在"Build Specifications"右键菜单中选取"New"&#xff0c;可以看到程序有几种不同的发布方法&#xff1a;Application(EXE)、Installer、.Net Inte…...

ref 和 reactive 区别

在Vue 3中&#xff0c;ref和reactive都是用于创建响应式数据的API&#xff0c;但它们之间存在一些关键的区别。以下是ref和reactive的主要区别&#xff1a; 1. 数据类型处理 ref&#xff1a;主要用于定义基本类型的数据&#xff08;如字符串、数字、布尔值等&#xff09;以及…...

深度学习计算机视觉中, 多尺度特征和上下文特征的区别是?

在深度学习和计算机视觉中&#xff0c;多尺度特征和上下文特征都是用来捕捉和理解图像中复杂模式和关系的重要概念&#xff0c;但它们的侧重点有所不同。 多尺度特征 (Multi-scale Features) 多尺度特征是指在不同尺度上对图像进行特征提取&#xff0c;以捕捉不同尺度的物体特…...

Facebook未来展望:数字社交平台的进化之路

在信息技术日新月异的时代&#xff0c;社交媒体平台不仅是人们交流沟通的重要工具&#xff0c;更是推动社会进步和变革的重要力量。作为全球最大的社交媒体平台之一&#xff0c;Facebook在过去十多年里&#xff0c;不断创新和发展&#xff0c;改变了数十亿用户的社交方式。展望…...

uniapp-vue3-vite 搭建小程序、H5 项目模板

uniapp-vue3-vite 搭建小程序、H5 项目模板 特色准备拉取默认UniApp模板安装依赖启动项目测试结果 配置自动化导入安装依赖在vite.config.js中配置 引入 prerttier eslint stylelint.editorconfig.prettierrc.cjs.eslintrc.cjs.stylelintrc.cjs 引入 husky lint-staged com…...

sealos快速安装k8s

Sealos 提供一套强大的工具&#xff0c;使得用户可以便利地管理整个集群的生命周期。 功能介绍 使用 Sealos&#xff0c;您可以安装一个不包含任何组件的裸 Kubernetes 集群。此外&#xff0c;Sealos 还可以在 Kubernetes 之上&#xff0c;通过集群镜像能力组装各种上层分布式…...

智慧水利:迈向水资源管理的新时代,结合物联网、云计算等先进技术,阐述智慧水利解决方案在提升水灾害防控能力、优化水资源配置中的关键作用

本文关键词&#xff1a;智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...