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 关键字无法与函数一起使用。

查找总访问量大于 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.hqwc.cn/news/28039.html

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

相关文章

学习记录——SpectFormer、DilateFormer、ShadowFormer

SpectFormer: Frequency and Attention is what you need in a Vision Transformer, arXiv2023 频域混合注意力SpectFormer 2023 论文:https://arxiv.org/abs/2304.06446 代码:https://badripatro.github.io/SpectFormers/ 摘要视觉变压器已经成功地应用…

nginx基础2——配置文件详解(网页配置篇)

文章目录 一、基本了解二、nginx.conf配置参数2.1 调试参数2.2 必配参数2.3 优化性能参数2.4 event{}段配置参数2.5 网络连接参数2.6 fastcgi配置参数2.7 总结常配参数 三、http{}段配置参数3.1 配置结构3.2 精简配置网页3.3 location定义网页3.3.1 root path用法3.3.1 alias p…

哪些方法可以一键批量查询快递单号

想做好电商或者物流行业,可千万不能虎头蛇尾,前端的高效并不够,我们还要做好后端的及时跟踪维护。当大量快递集中发出之后,我们必须及时地跟踪物流信息,掌握快递的动态,小编今天要和大家安利一款实用的辅助…

Linux系统部署Tomcat详细教程(图文讲解)

前言:本篇博客教大家如何一步一步使用Linux系统去部署自己的Tomcat服务器,每一行代码都是我自己严格执行过的,共分为了8点进行阐述,逻辑清晰! 目录 一、安装JDK环境 二、准备Tomcat安装包 三、安装Tomcat 四、配置…

Nuxt.js--》解密Nuxt.js:构建优雅、高效的现代化Vue.js应用

博主今天开设Nuxt.js专栏,带您深入探索 Nuxt.js 的精髓,学习如何利用其强大功能构建出色的前端应用程序。我们将探讨其核心特点、灵活的路由系统、优化技巧以及常见问题的解决方案。无论您是想了解 Nuxt.js 的基础知识,还是希望掌握进阶技巧&…

精智达在科创板上市:募资约11亿元,深创投等为其股东

7月18日,深圳精智达技术股份有限公司(下称“精智达”,SH:688627)在上海证券交易所科创板上市。本次上市,精智达的发行价为46.77元/股,发行数量为2350.2939万股,募资总额为10.99亿元,…

10-2. 数组 Array 的实例方法

本文并没有写出数组的全部使用方法,想看全的可以看一下这个 Array - JavaScript | MDN 目录 1 常用内置方法 1.1 合并数组 concat() 1.2 复制元素覆盖到指定位置 copyWithin() 1.3 返回其他变量的数组形式 Array.from() 1.3.1 基本使用 1.3.2 将伪数组…

【Linux】udp服务器实现大型网络聊天室

udp终结篇~ 文章目录 前言一、udp服务器实现大型网络聊天室总结 前言 根据上一篇文章中对于英汉互译和远程操作的两个小功能大家应该已经学会了,我们的目的是让大家可以深刻的理解udp服务器所需要的接口已经实现的简单步骤,下面我们开始实现网络聊天室。…

2023最新版本Activiti7系列-网关服务

网关篇 网关可控制流程的执行流向,常用于拆分或合并复杂的流程场景。在Activiti7中,有以下几种类型的网关: 排他网关(Exclusive Gateway):用于在流程中进行条件判断,根据不同的条件选择不同的分…

使用wxPython和pillow开发拼图小游戏(四)

上一篇介绍了使用本地图片来初始化游戏的方法,通过前边三篇,该小游戏的主要内容差不多介绍完了,最后这一篇来介绍下游戏用时的计算、重置游戏和关闭窗口事件处理 游戏用时的计算 对于游戏用时的记录,看过前几篇的小伙伴可能也发现…

linux之Ubuntu系列(-)常见指令

Ubuntu 中文 版本 注意点 通过修改语言改成英文 在终端录入:export LANGen_US 在终端录入:xdg-user-dirs-gtk-update 单用户和多用户 命令格式 command [-选项] [参数] –查看命令的帮助 命令 --help man 命令 |操作键| 功能| |空格键|-显示手册的下…

15 - 堆栈 - 大顶堆

前面我们学习了小顶堆,相信大家都已经有点概念了,今天来了解一下大顶堆。 大顶堆示意图 堆数组存放的公式 我们用简单的公式来描述一下堆的定义就是: 大顶堆:arr[i] >= arr[2i+1] && arr[i] >= arr[2i+2] 小顶堆:arr[i] <= arr[2i+1] && a…