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

SQL刷题快速入门(二)

其他章节:SQL刷题快速入门(一)
承接上一章节,本章主要讲SQL的运算符聚合函数SQL保留小数的几种方式三个部分

运算符

SQL 支持多种运算符,用于执行各种操作,如算术运算、比较、赋值、逻辑运算等。以下是一些常见的 SQL 运算符类型及其示例:

算术运算符

  • +(加)
  • -(减)
  • *(乘)
  • /(除)
  • %(取模)
SELECT column1 + column2 AS sum, column1 - column2 AS difference FROM table_name;

比较运算符

  • =(等于)
  • <>!=(不等于)
  • >(大于)
  • <(小于)
  • >=(大于等于)
  • <=(小于等于)
  • BETWEEN ... AND ...(在…和…之间)
  • LIKE(模式匹配)
  • IN(在集合中)
  • IS NULL(是 NULL)
  • IS NOT NULL(不是 NULL)
SELECT * FROM table_name WHERE column1 > 100;

逻辑运算符

  • AND(逻辑与)
  • OR(逻辑或)
  • NOT(逻辑非)
  • between a and b ,包含左右边界
SELECT * FROM table_name WHERE column1 > 100 AND column2 < 50;

赋值运算符

  • =(赋值)
UPDATE table_name SET column1 = value WHERE condition;

位运算符

  • &(按位与)
  • |(按位或)
  • ^(按位异或)
  • ~(按位非)
  • <<(左移)
  • >>(右移)
SELECT column1 & column2 AS bitwise_and FROM table_name;

特殊运算符

  • ||(字符串连接,在某些数据库中,如 PostgreSQL)
  • CONCAT(字符串连接,在某些数据库中,如 MySQL)
SELECT column1 || ' ' || column2 AS concatenated_string FROM table_name;

请注意,不同的数据库系统可能支持不同的运算符集合,并且可能会有特定的语法差异。在使用特定数据库时,应该参考其官方文档以了解详细信息。

聚合函数

聚合函数(Aggregate Functions)在 SQL 中用于对一组值(通常是表中的多行)进行计算,并返回单个值作为结果。这些函数在处理数据集时非常有用,尤其是在进行数据分析和报告时。以下是一些常见的 SQL 聚合函数及其用途:

COUNT()

  • 返回指定列中的行数。
  • 示例:COUNT(*) 返回表中的总行数,COUNT(column_name) 返回非 NULL 值的行数。

SUM()

  • 返回指定列值的总和。
  • 示例:SUM(column_name) 返回 column_name 列所有值的总和。

AVG()

  • 返回指定列值的平均值(算术平均值)。
  • 示例:AVG(column_name) 返回 column_name 列所有值的平均值。

MAX()

  • 返回指定列中的最大值。
  • 示例:MAX(column_name) 返回 column_name 列中的最大值。

MIN()

  • 返回指定列中的最小值。
  • 示例:MIN(column_name) 返回 column_name 列中的最小值。

FIRST()

  • 返回指定列中的第一个值。
  • 注意:不是所有数据库系统都支持 FIRST() 函数。

LAST()

  • 返回指定列中的最后一个值。
  • 注意:不是所有数据库系统都支持 LAST() 函数。

STDDEV()

  • 返回指定列值的标准偏差。
  • 示例:STDDEV(column_name) 返回 column_name 列值的标准偏差。

VAR()

  • 返回指定列值的方差。
  • 示例:VAR(column_name) 返回 column_name 列值的方差。

聚合函数通常与 GROUP BY 子句一起使用,此时只能用having,不能用where,以便对每个分组进行计算。以下是一个使用 GROUP BYSUM() 聚合函数的例子:

SELECT category, SUM(price) AS total_price
FROM products
GROUP BY category;

在这个例子中,SUM(price) 计算每个类别 category 的总价格,并使用 GROUP BY 子句按类别分组结果。

having

where中的属性不能是聚合函数得来的,如果属性是聚合函数得来的新属性,得用having!而having的属性必须出现在group by中

在MySQL中,HAVING子句通常与GROUP BY子句搭配使用,用于对分组后的结果进行条件过滤。HAVING子句的作用与WHERE子句类似,但是WHERE子句不能与聚合函数(如SUM()COUNT()AVG()等)一起使用,而HAVING可以。
以下是HAVING子句的一些关键点:

  • 搭配使用HAVING子句通常与GROUP BY子句一起使用。
  • 作用:它用于指定分组(由GROUP BY创建)必须满足的条件,以使这些分组在最终结果集中出现。
  • 聚合函数HAVING允许您包含聚合函数来过滤分组后的结果。
    以下是一个使用HAVING子句的示例:

HAVING子句的限制:HAVING所选的属性必须是包含在GROUP BY子句中的列,或者用于聚合函数。如果university列没有被包含在GROUP BY子句中,则不能用。

列与聚合函数:在SELECT语句中选择非聚合列时,这些列必须出现在GROUP BY子句中。

要解决这个问题,您需要做以下修改:

  • 确保所有在SELECT子句中出现的非聚合列都在GROUP BY子句中列出。
  • 如果您想要根据university列过滤结果,您应该在WHERE子句中进行,而不是在HAVING子句中。
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department
HAVING COUNT(*) > 10;

在这个例子中:

  • GROUP BY departmentemployees表中的记录按department列分组。
  • HAVING COUNT(*) > 10确保只有那些拥有超过10名员工的部门会被包含在结果集中。
    如果没有GROUP BY子句,HAVING子句将不会起作用,因为没有分组的概念。此外,如果需要使用WHERE子句来过滤行,则在GROUP BYHAVING子句之前应用它。例如:
SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000
GROUP BY department
HAVING COUNT(*) > 10;

在这个例子中:

  • WHERE salary > 50000首先过滤出薪水超过50000的员工。
  • 然后按department分组。
  • 最后,HAVING COUNT(*) > 10确保只有那些拥有超过10名高薪员工的部门会被选中。

保留小数

不同数据库的函数可能存在细微差别,这里以 MySQL 为例,可以使用以下函数来处理数值的四舍五入、截断、向上取整和向下取整操作:

1. 四舍五入保留小数

函数: ROUND(number, decimals)

  • 参数:

    • number: 要进行四舍五入的数值。
    • decimals: 要保留的小数位数。如果为正数,表示保留小数点后的位数;如果为负数,表示对整数部分进行四舍五入。
  • 举例:

    SELECT ROUND(123.4567, 2);  -- 结果为 123.46
    SELECT ROUND(123.456, 0) AS rounded_value;  -- 意思是保留整数,结果是 123
    SELECT ROUND(123.4567, -1); -- 结果为 120
    

2. 截断到指定位

函数: TRUNCATE(number, decimals)

  • 参数:

    • number: 要进行截断的数值。
    • decimals: 要保留的小数位数。如果为正数,表示保留小数点后的位数;如果为负数,表示对整数部分进行截断。
  • 举例:

    SELECT TRUNCATE(123.4567, 2);  -- 结果为 123.45
    SELECT TRUNCATE(123.4567, -1); -- 结果为 120
    

3. 向上取整

函数: CEILING(number)CEIL(number)

  • 参数:

    • number: 要进行向上取整的数值。
  • 举例:

    SELECT CEILING(123.4567);  -- 结果为 124
    SELECT CEILING(-123.4567); -- 结果为 -123
    

4. 向下取整

函数: FLOOR(number)

  • 参数:

    • number: 要进行向下取整的数值。
  • 举例:

    SELECT FLOOR(123.4567);  -- 结果为 123
    SELECT FLOOR(-123.4567); -- 结果为 -124
    

相关文章:

SQL刷题快速入门(二)

其他章节&#xff1a;SQL刷题快速入门&#xff08;一&#xff09; 承接上一章节&#xff0c;本章主要讲SQL的运算符、聚合函数、SQL保留小数的几种方式三个部分 运算符 SQL 支持多种运算符&#xff0c;用于执行各种操作&#xff0c;如算术运算、比较、赋值、逻辑运算等。以下…...

hive迁移后修复分区慢,怎么办?

我有1个30TB的分区表&#xff0c;客户给的带宽只有600MB&#xff0c;按照150%的耗时来算&#xff0c;大概要迁移17小时。 使用hive自带的修复分区命令&#xff08;一般修复分区比迁移时间长一点&#xff09;&#xff0c;可能要花24小时。于是打算用前面黄大佬的牛B方案。 Hive增…...

代码随想录算法训练营day27

代码随想录算法训练营 —day27 文章目录 代码随想录算法训练营前言一、贪心算法理论基础二、455.分发饼干三、376. 摆动序列53. 最大子数组和总结 前言 今天是算法营的第27天&#xff0c;希望自己能够坚持下来&#xff01; 今日任务&#xff1a; ● 贪心算法理论基础 ● 455.…...

python 代码使用 DeepXDE 库实现了一个求解二维非线性偏微分方程(PDE)的功能

import deepxde as dde import numpy as np import matplotlib.pyplot as plt import tensorflow as tf# 设置时空计算域 Lx 1 # x 范围从 0 到 1 Ly 1 # y 范围从 0 到 1 Lt 0.05 # t 范围从 0 到 0.05 geom dde.geometry.Rectangle([0, 0], [Lx, Ly]) # 空间域 timed…...

【Go】:深入解析 Go 1.24:新特性、改进与最佳实践

前言 Go 1.24 尚未发布。这些是正在进行中的发布说明。Go 1.24 预计将于 2025 年 2 月发布。本文将深入探讨 Go 1.24 中引入的各项更新&#xff0c;并通过具体示例展示这些变化如何影响日常开发工作&#xff0c;确保为读者提供详尽而有价值的参考。 新特性及改进综述 HTTP/2 …...

VUE3 一些常用的 npm 和 cnpm 命令,涵盖了修改源、清理缓存、修改 SSL 协议设置等内容。

以下是一些常用的 npm 和 cnpm 命令&#xff0c;涵盖了修改源、清理缓存、修改 SSL 协议设置等内容。 npm 常用命令 1. 修改 npm 源 更改为淘宝的 npm 镜像源&#xff08;可以提高安装速度&#xff09;&#xff1a; bash复制代码 npm config set registry https://registry…...

【SpringBoot】@Value 没有注入预期的值

问题复现 在装配对象成员属性时&#xff0c;我们常常会使用 Autowired 来装配。但是&#xff0c;有时候我们也使用 Value 进行装配。不过这两种注解使用风格不同&#xff0c;使用 Autowired 一般都不会设置属性值&#xff0c;而 Value 必须指定一个字符串值&#xff0c;因为其…...

【STM32-学习笔记-6-】DMA

文章目录 DMAⅠ、DMA框图Ⅱ、DMA基本结构Ⅲ、不同外设的DMA请求Ⅳ、DMA函数Ⅴ、DMA_InitTypeDef结构体参数①、DMA_PeripheralBaseAddr②、DMA_PeripheralDataSize③、DMA_PeripheralInc④、DMA_MemoryBaseAddr⑤、DMA_MemoryDataSize⑥、DMA_MemoryInc⑦、DMA_DIR⑧、DMA_Buff…...

js实现一个可以自动重链的websocket客户端

class WebSocketClient {constructor(url, callback, options {}) {this.url url; // WebSocket 服务器地址this.options options; // 配置选项&#xff08;例如重试间隔、最大重试次数等&#xff09;this.retryInterval options.retryInterval || 1000; // 重试间隔&#…...

企业总部和分支通过GRE VPN互通

PC1可以ping通PC2 1、首先按照地址表配置ip地址 2、分别在AR1和AR3上配置nat 3、配置GRE a 创建tunnel接口&#xff0c;并选择tunnel协议为GRE&#xff0c;为隧道创建一个地址&#xff0c;用作互联 b 为隧道配置源地址或者源接口&#xff0c;这里选择源接口&#xff1b;再为…...

油猴支持阿里云自动登陆插件

遇到的以下问题&#xff0c;都已在脚本中解决&#xff1a; 获取到的元素赋值在页面显示&#xff0c;但是底层的value并没有改写&#xff0c;导致请求就是获取不到数据元素的加载时机不定&#xff0c;尤其是弱网情况下&#xff0c;只靠延迟还是有可能获取不到&#xff0c;且登陆…...

【2024年华为OD机试】(C卷,100分)- 字符串筛选排序 (Java JS PythonC/C++)

一、问题描述 题目描述 输入一个由N个大小写字母组成的字符串 按照ASCII码值从小到大进行排序 查找字符串中第K个最小ASCII码值的字母 (k > 1) 输出该字母所在字符串中的位置索引 (字符串的第一个位置索引为0) k如果大于字符串长度则输出最大ASCII码值的字母所在字符串…...

iOS - runtime总结

详细总结一下 Runtime 的核心内容&#xff1a; 1. 消息发送机制 // 消息发送的基本流程 id objc_msgSend(id self, SEL _cmd, ...) {// 1. 获取 isaClass cls object_getClass(self);// 2. 查找缓存IMP imp cache_getImp(cls, _cmd);if (imp) return imp(self, _cmd, ...);…...

第33 章 - ES 实战篇 - MySQL 与 Elasticsearch 的一致性问题

思维导图 0. 前言 MySQL 与 Elasticsearch 一致性问题是老生常谈了。网上有太多关于这方面的文章了&#xff0c;但是千篇一律&#xff0c;看了跟没看没有太大区别。 在生产中&#xff0c;我们往往会通过 DTS 工具将 binlog 导入到 Kafka&#xff0c;再通过 Kafka 消费 binlog&…...

Artec Leo 3D扫描仪与Ray助力野生水生动物法医鉴定【沪敖3D】

挑战&#xff1a;捕获大型水生哺乳动物&#xff08;如鲸鱼&#xff09;的数据&#xff0c;搭建全彩3D模型&#xff0c;用于水生野生动物的法医鉴定、研究和保护工作。 解决方案&#xff1a;Artec Eva、Artec Space Spider、Artec Leo、Artec Ray、Artec Studio、CT scans 效果&…...

PythonQT5打包exe线程使用

打包&#xff1a; pyinstaller --noconsole --onefile test.py–noconsole 表示不需要打开命令行 修改&#xff1a;test.spec 一般项目里面需要用的资源文件&#xff0c;比如lib、png、exe等。 需要单独修改spec文件 pathex[.],binaries[(D:/test.png, .),(D:/simsun.ttc, .…...

【Powershell】Windows大法powershell好(二)

PowerShell基础&#xff08;二&#xff09; 声明&#xff1a;该笔记为up主 泷羽的课程笔记&#xff0c;本节链接指路。 警告&#xff1a;本教程仅作学习用途&#xff0c;若有用于非法行为的&#xff0c;概不负责。 1. powershell 执行外部命令 powershell也可以执行一些外部的…...

前端学习-环境this对象以及回调函数(二十七)

目录 前言 目标 环境对象 作用 环境对象this是什么&#xff1f; 判断this指向的粗略规则是什么&#xff1f; 回调函数 目标 常见的使用场景 综合案例&#xff1a;Tab任务栏切换 总结 前言 男儿何不带吴钩&#xff0c;收取关山五十州 目标 能够分析判断函数运行在不…...

Element-plus、Element-ui之Tree 树形控件回显Bug问题。

需求&#xff1a;提交时&#xff0c;需要把选中状态和半选中状态 的数据id提交。如图所示&#xff1a; 数据回显时&#xff0c;会出现代码如下&#xff1a; <template><el-tree ref"treeRef" :data"tree" show-checkbox node-key"id" …...

互联网全景消息(10)之Kafka深度剖析(中)

一、深入应用 1.1 SpringBoot集成Kafka 引入对应的依赖。 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupI…...

Oracle Dataguard(主库为双节点集群)配置详解(5):将主库复制到备库并启动同步

Oracle Dataguard&#xff08;主库为双节点集群&#xff09;配置详解&#xff08;5&#xff09;&#xff1a;将主库复制到备库并启动同步 目录 Oracle Dataguard&#xff08;主库为双节点集群&#xff09;配置详解&#xff08;5&#xff09;&#xff1a;将主库复制到备库并启动…...

pytorch小记(一):pytorch矩阵乘法:torch.matmul(x, y)

pytorch小记&#xff08;一&#xff09;&#xff1a;pytorch矩阵乘法&#xff1a;torch.matmul&#xff08;x, y&#xff09;/ x y 代码代码 1&#xff1a;torch.matmul(x, y)输入张量&#xff1a;计算逻辑&#xff1a;输出结果&#xff1a; 代码 2&#xff1a;y y.view(4,1)…...

PyTorch环境配置常见报错的解决办法

目标 小白在最基础的环境配置里一般都会出现许多问题。 这里把一些常见的问题分享出来。希望可以节省大家一些时间。 最终目标是可以在cmd虚拟环境里进入jupyter notebook&#xff0c;new的时候有对应的环境&#xff0c;并且可以跑通所有的import code。 第一步&#xff1a;…...

罗永浩再创业,这次盯上了 AI?

罗永浩&#xff0c;1972年7月9日生于中国延边朝鲜族自治州的一个军人家庭&#xff0c;是一名朝鲜族人&#xff1b;早年在新东方授课&#xff0c;2004年当选 “网络十大红人” &#xff1b;2006年8月1日&#xff0c;罗永浩创办牛博网&#xff1b;2008年5月&#xff0c;罗永浩注册…...

VUE3 provide 和 inject,跨越多层级组件传递数据

provide 和 inject 是 Vue 3 提供的 API&#xff0c;主要用于实现祖先组件与后代组件之间的依赖注入。它们可以让你在组件树中&#xff0c;跨越多层组件传递数据&#xff0c;而不需要通过 props 或事件的方式逐层传递。这个机制主要用于状态共享、插件系统或某些跨层级的功能。…...

git打补丁

1、应用场景 跨仓库升级 开发项目B使用的是开源项目A。开源项目A发现漏洞&#xff0c;作者进行了修复&#xff0c;我们可以通过使用git补丁的方式&#xff0c;将作者修改的内容复制到我 们的项目B中。 2、TortoiseGit方式 源仓库 格式化补丁 根据提交数量&#xff0c;生成…...

机械燃油车知识图谱、知识大纲、知识结构(持续更新...)

一、发动机 曲柄连杆机构 配气机构 点火系统 起动系统 燃油供给系统 润滑系统 冷却系统 二、底盘 &#xff08;一&#xff09;传动系统 1、离合器 2、变速器 3、万向传动装置 4、驱动桥 &#xff08;二&#xff09;行驶系统 1、车架 2、车桥 3、悬架 4、车轮 &a…...

Vue3学习总结

一、Vue 3 基础搭建与核心语法 1.创建 Vue 3 应用 在项目的入口文件 main.js 中&#xff0c;通过以下代码创建 Vue 3 应用实例&#xff1a; import { createApp } from vue; import App from ./App.vue;const app createApp(App); app.mount(#app); 这几行代码的作用是引入…...

Type-C双屏显示器方案

在数字化时代&#xff0c;高效的信息处理和视觉体验已成为我们日常生活和工作的关键需求。随着科技的进步&#xff0c;一款结合了便携性和高效视觉输出的设备——双屏便携屏&#xff0c;逐渐崭露头角&#xff0c;成为追求高效工作和娱乐体验人群的新宠。本文将深入探讨双屏便携…...

【读书与思考】焦虑与内耗

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 导言 今天一个朋友和我说&#xff0c;最近比较焦虑和内耗&#xff0c;无心工作和学习&#xff0c;我问他你焦虑内耗的时候&#xff0c;时间主要花在哪了&#xff0c;他告诉我说主要花在看有关移…...

滨州哪里做网站/seo优化网站百度技术

目录 ZOOkeeper&#xff0c;Eureka和Redis集群有什么区别&#xff1f; zk集群 Eureka集群 Redis集群 过半数存活原则 ZOOkeeper&#xff0c;Eureka和Redis集群有什么区别&#xff1f; zk集群 Eureka集群 Redis集群 过半数存活原则...

网页制作怎么收费/南宁百度推广排名优化

场景需求有一篇文章&#xff0c;不在人工干预下&#xff0c;自动提取关键词。基本理论文章的关键词&#xff0c;最初的方法多是使用词语出现的频次&#xff08;Term Frequency&#xff0c;缩写为TF&#xff09;作为衡量的标准&#xff0c;但在实际应用过程中会出现一些无关紧要…...

网站开发报价明细表/点金推广优化公司

作者:何祖彬[RobinHe] Mail:zubin.hegmail.com 始于2008年8月4日 PM Blog: http://blog.csdn.net/zubin006/ WebSite : http://www.wearelinuxer.com/ 版本号:Debian-Postfix-SASL-SPAM- V1.0-20080804, 2008年8月4日首版转载请注明出处&#xff0c;本文也是采用两篇网友的大…...

wordpress右上角登录/谷歌搜索引擎香港免费入口

前段时间&#xff0c;浪潮与百度联合发布了面向智慧计算的创新产品--SR-AI整机柜服务器。这款产品符合最新的天蝎2.5标准&#xff0c;是全球首个采用PCIe Fabric互联架构设计的AI方案&#xff0c;为更大规模数据集和深层神经网络领域&#xff0c;提供更强性能的AI计算平台。 浪…...

web网站如何做负载均衡/公司网址怎么制作

【题目描述】 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字。 &#xff08;原题地址&#xff09; 【样例示例】 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]]输出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&#xff…...

网站建设做得好的公司/b2b平台有哪些网站

转载请注明出处&#xff0c;谢谢 http://blog.csdn.net/ACM_cxlove?viewmodecontents by---cxlove 题目&#xff1a;用不大于n内的所有数去组成一个尽可能大的完全平方数。 http://acm.hdu.edu.cn/showproblem.php?pid4196 完全平方数&#xff0c;显然是所有的素因子的个数…...