SQL语句GROUP BY、HAVING、EXISTS、SQL函数(Null判断、日期相关、计算数值和字符串操作 )

目录

GROUP BY

HAVING

EXISTS

SQL函数

Null判断函数

日期数据类型及函数

计算数值和字符串操作函数 

AVG(平均值)

COUNT(数据条数)

FIRST/LAST(第一条数据)

MAX/MIN(最大值)

SUM(列总和)

UCASE/ LCASE (转换大小写)

MID(截取字符串)

LEN(字符值的长度)

ROUND(数值四舍五入)

FORMAT(数据格式转化)

FORMAT详细介绍


GROUP BY

根据某一列或多列进行分组(列值相同的为一组),每组返回产生一条数据(默认为第一条数据)

Websites表

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+

access_log

+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
+-----+---------+-------+------------+

返回 access_log 各个 site_id 的访问量

https://www.runoob.com/wp-content/uploads/2013/09/groupby1.jpg

统计有记录的网站的记录数量

https://www.runoob.com/wp-content/uploads/2013/09/groupby2.jpg

HAVING

用于搭配函数筛选内容,因为WHERE 关键字无法与函数一起使用。

注意HAVING需要写在GROUP BY后面

查找总访问量大于 200 的网站(见GROUP BY中的表)

EXISTS

用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False。

查找存在总访问量(count 字段)大于 200 的网站名和链接(见GROUP BY中的表)。

SQL函数

数据库中的内置函数。

Null判断函数

下面表示当UnitsOnOrder列中有值为null时返回0

SQL Server / MS Access

ISNULL(UnitsOnOrder,0)

Oracle

NVL(UnitsOnOrder,0)

MySQL

--两种都行
IFNULL(UnitsOnOrder,0)
COALESCE(UnitsOnOrder,0)

日期数据类型及函数

SQL Server 和 MySQL 中的 Date 函数 | 菜鸟教程

计算数值和字符串操作函数 

AVG(平均值)

对某一列取平均值

SELECT site_id, count FROM access_log
WHERE count > (SELECT AVG(count) FROM access_log);

注意不能直接写count>AVG(count)where关键字不能与函数一起使用

COUNT(数据条数)

返回符合条件的指定列的值的数目(NULL 不计入)

SELECT COUNT(count) AS nums FROM access_log

返回access_log表中列字段count不为null的总条数。

Count(*)表示返回所有条数(包括null)。

COUNT(DISTINCT count)表示列字段count不为null且去重后的总条数。

计算指定的字符为一条数据

count(case when job ='SALESMAN' then '1' end)
count(case job = 'MANAGER' then 2 end )

表示当job字段值为SALESMAN时为1条,为MANAGER时为2条

FIRST/LAST(第一条数据)

FIRST(column_name)返回指定的列中第一个(最后一个)记录的值。

只有 MS Access 支持 FIRST/LAST() 函数。可以用SELECT TOPLIMIT加上ORDER BY来代替

MAX/MIN(最大值)

 MAX(column)返回指定列的最大/最小值。

SUM(列总和)

SUM(column_name)返回某一列数值的总和。

UCASE/ LCASE (转换大小写)

UCASE/ LCASE (column_name)把字段的值转换为大/小写。

SQL Server使用UPPER/LOWER(column_name)。

MID(截取字符串)

MID(column_name,start,length?)从某个文本字段提取字符,start为起始值,最小为1,length为可选表示返回的字符数,省略时返回剩余文本。

注意在MySql 中使用,Oracle用substr,MS SQL Server用SubString关键字代替mid

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+

https://www.runoob.com/wp-content/uploads/2013/09/mid1.jpg

LEN(字符值的长度)

LEN(column_name)返回该列字段中值的长度。

ROUND(数值四舍五入)

ROUND(column_name,decimals?)对某列数值字段进行指定小数位数的四舍五入,decimals为可选表示返回小数的位数,省略时只返回整数。

FORMAT(数据格式转化)

FORMAT(column_name,format)对某列字段值进行格式化。通常用在时间相关上。

下面会把Now函数产生的时分秒过滤掉,只显示年月日,中间用-连接。

SELECT DATE_FORMAT(Now(),'%Y-%m-%d') AS date
FROM Websites;

FORMAT详细介绍

SQL FORMAT 函数 - SQL教程 - 一点教程

SQL FORMAT() 函数的使用 - 墨天轮

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

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

相关文章

什么是70v转12v芯片?

问:什么是70v转12v芯片? 答:70v转12v芯片是一种电子器件,其功能是将输入电压范围在9v至100v之间的电源转换为稳定的12v输出电压。这种芯片通常被用于充电器、车载电池充电器和电源适配器等设备中。 问:这种芯片的最大…

如何在Microsoft Excel中使用SORT函数

虽然 Microsoft Excel 提供了一个内置的数据排序工具,但你可能更喜欢函数和公式的灵活性。 使用 SORT 函数的好处是,你可以在不同的位置对数据进行排序。如果你想在不干扰原始数据集的情况下操作项目,你会喜欢 Excel 中的 SORT 函数。但是,如果你喜欢对项目进行原位排序,…

Spring AOP的介绍与实现

文章目录 Spring AOP1. Spring AOP概念2. Spring AOP的作用3.AOP的组成4. Spring AOP的实现4.1 添加Spring AOP依赖4.2 定义切面(创建切面类)4.3 定义切点(配置拦截规则)4.3.1 切点表达式语法 4.4 定义通知的实现 5. Spring AOP实…

STM32 Proteus仿真全自动洗衣机洗涤脱水-0074

STM32 Proteus仿真全自动洗衣机洗涤脱水-0074 Proteus仿真小实验: STM32 Proteus仿真全自动洗衣机洗涤脱水-0074 功能: 硬件组成:STM32F103R6单片机LCD1602显示器 L298N驱动电机正反转蜂鸣器LED指示灯多个按键(标准洗,快速洗&a…

STM32学习笔记(十二)丨RTC实时时钟

本篇文章包含的内容 一、计算机底层计时系统——时间戳1.1 时间戳简介1.2 GMT/UTC1.3 C语言和time.h库 二、STM32的BKP和RTC时钟2.1 BKP(Backup Registers)备份寄存器2.2 RTC(Real Time Clock)实时时钟2.2.1 RTC简介2.2.2 RTC的内…

javascript 导出表格的excel

一个php网站的表格,需要增加导出excel的功能, 因对web开发不甚了解,开始想着用php导出, 搜索一番发现比较复杂,而且我的表格里已经有数据了, 如果导出又要去库中获取一次,不是负担加倍, 可否把现有表格数据,直接导出来? 答案是肯定的,用js在前端导出 开源js组件…

opencv-07-感兴趣区域(ROI)

在图像处理过程中,我们可能会对图像的某一个特定区域感兴趣,该区域被称为感兴趣区 域(Region of Interest,ROI)。在设定感兴趣区域 ROI 后,就可以对该区域进行整体操作。 以下是一些 OpenCV ROI应用场景 …

centos环境搭建nsq单点

简言 下载 启动nsq(单节点) 1. 启动nsqd 2. 启动nsqlookupd 3. 启动nsqadmin 查看状态 简言 1. nsq是go语言实现的分布式消息处理平台,类似我们常用的kafka,rocket mq等,目的是用来大规模地处理每天数以十亿计级别的消息。它具有分布式和…

如何用Jmeter做性能测试

目录 性能测试的概念 性能测试类型 性能测试应用场景(领域) 性能测试常用的指标 性能测试流程 需求分析 搭建测试环境 测试场景设计 测试用例设计和脚本开发 测试数据准备 性能测试执行和管理 性能测试结果分析与调优 测试报告和跟踪 性能测…

AtcoderABC244场

A - Last LetterA - Last Letter 题目大意 给定一个长度为N的字符串S,由小写英文字母组成,打印出S的最后一个字符。 思路分析 题目要求打印出字符串S的最后一个字符,可以直接通过访问S的最后一个元素来获取该字符。可以使用字符串的back()…

用Arthas快速定位线上JVM问题!

Arthas分析FullGC问题定位 对于FullGC那一定不会陌生,一般来说会采用横切FullGC前置拦截(-XX:+HeapDumpBeforeFullGC)和后置拦截(-XX:+HeapDumpAfterFullGC),导出FullGC发生前后的heap dump文件,以便于我们进行FullGC原因的分析和定位。 推测分析问题之FullGC的频率过高…

unity背景缓动动效

这算是一个很常见的小功能,比如我们在玩横版游戏的时候,背景动画会以一定的频率运动,其实现方式也有很多种。 比如,使用UGUI的imageanimtion动画的方式,自己k桢实现。 还可以使用材质球本身的功能来实现,关…

WPF 自定义控件完成库容表盘显示效果

先看一下显示效果: 需要注意的地方有以下几点: 表盘的刻度分部,长刻度和短刻度显示。在数值80W时,需要更改刻度盘的颜色渐变。在数值80W时,更改库容总数背景的显示,也是颜色渐变。刻度盘控件属性定义&…

HarmonyOS课程体验官招募(第四期),寻找乐于分享,精益求精的伙伴

华为开发者联盟HarmonyOS课程体验官(第四期)活动,开始招募啦! 如果你精益求精、乐于分享;如果你愿意为学堂课程优化改进出谋划策,那就快来加入我们吧!学堂期待与你共同成长、一起进步&#xff0…

11、动手学深度学习——语言模型和数据集:代码详解

我们了解了如何将文本数据映射为词元,以及将这些词元可以视为一系列离散的观测,例如单词或字符。 假设长度为 T T T的文本序列中的词元依次为 x 1 , x 2 , … , x T x_1, x_2, \ldots, x_T x1​,x2​,…,xT​。于是, x t x_t xt​&#xff08…

GPT与人类:人工智能是否能够真正复制人类语言?

人类语言是一种复杂的系统,它不仅包含着无数单词和语法规则,更重要的是具有丰富的含义和上下文。这些语言特征涉及到常识、文化、情感和经验等方面,是人类在长期进化和文明发展中所积累起来的丰富知识和经验的体现。然而,人工智能…

SpringCloud学习路线(7)—— 统一网关Gateway

一、引言 (一)需求: 服务器中的微服务只允许内部人员调用或是内网人员进行调用,拒绝外网人员访问。 (二)如何实现需求? 网关 (三)网关的功能 身份认证和权限校验服务…

java线上故障排查套路总结

线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连&#x…

Principle Component Analysis

简述PCA的计算过程 输入:数据集X{x1,x2,...,xn},需降到k维 ① 去中心化(去均值,即每个特征减去各自的均值) ② 计算协方差矩阵1/nX*X^T(1/n不影响特征向量&#xff09…

day39-Oracle分区表

0目录 Oracle分区表 1.2.3 1. Oracle分区表 1.1 作用: Oracle数据库的分区把表中的数据行按照分区划成几个区域,提高大数据量下表的性能 1.2 应用场景:常应用于数据量大的表 1.3 分类:Oracle中有范围分区(最常见…