首页 > 数据库 >sql学习笔记-函数

sql学习笔记-函数

时间:2022-10-19 17:51:06浏览次数:49  
标签:COUNT name column sql 笔记 SQL where SELECT 函数

SQL AVG() 语法

SELECT AVG(column_name) FROM table_name 求平均数

SQL COUNT(column_name) 语法

COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

SELECT COUNT(column_name) FROM table_name; 统计该字段不为空的总数

SQL COUNT(*) 语法

COUNT(*) 函数返回表中的记录数:

SELECT COUNT(*) FROM table_name; 统计该表中的总数

SQL COUNT(DISTINCT column_name) 语法

COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:

SELECT COUNT(DISTINCT column_name) FROM table_name; 字段去重后统计总数

SQL MAX() 语法

SELECT MAX(column_name) FROM table_name; 查询该字段的最大值

SQL MIN() 语法

SELECT MIN(column_name) FROM table_name; 查询该字段的最小值

SQL SUM() 语法

SELECT SUM(column_name) FROM table_name; 查询该字段的总数(值相加的总数,上门的count是值数量的总数)  

分组查询

SQL GROUP BY 语法

SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name; 通过字段column_name进行分组,查询出对应的结果

HAVING 子句

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

HAVING 子句可以让我们筛选分组后的各组数据。

SQL HAVING 语法

SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value;

where 和having之后都是筛选条件,但是有区别的:

1.where在group by前, having在group by 之后

2.聚合函数(avg、sum、max、min、count),不能作为条件放在where之后,但可以放在having之后

 

on、where、having这三个都可以加条件的子句中,on是最先执行,where次之,having最后。

on只能用于连接查询(内连接、外连接、交叉连接),在其他情况下使用on会报错

on是在生成中间表时使用的条件;而where是在中间表生成后对中间表进行过滤使用的条件。
在两表联接查询时用on,在一个表的时候,就只有where跟having比较了。在这单表查询统计的情况下,如果要过滤的条件没有涉及到要计算字段,那它们的结果是一样的,只是where可以使用rushmore技术,而having就不能,在速度上后者要慢。
 在多表联接查询时,on比where更早起作用。系统首先根据各个表之间的联接条件,把多个表合成一个临时表后,再由where进行过滤,然后再计算,计算完后再由having进行过滤。由此可见,要想过滤条件起到正确的作用,首先要明白这个条件应该在什幺时候起作用,然后再决定放在那里。

标签:COUNT,name,column,sql,笔记,SQL,where,SELECT,函数
From: https://www.cnblogs.com/rookie-c/p/16807170.html

相关文章

  • 牛客MySQL真题练习2(180-194)
    统计每款的SPU(货号)数量,并按SPU数量降序排序SELECTstyle_id,COUNT(item_id)ASSPU_numFROMproduct_tbGROUPBYstyle_idORDERBYSPU_numDESC统计实际总销售......
  • MySQL_Navicat备份方案
    l 打开Navicat;l 新建MySQL连接,在高级页签中设置备份文件保存位置:     l 点击工具栏中的“自动运行”,“新建批处理作业”   l 按以下步骤操作: ......
  • haskell 学习笔记——关于monad
    前言:haskell真是一门让人又爱又恨的语言,学习起来的难度也是相当之大,重点在于理解概念与每一步递归的进行,即使学了一月有余我依然被各种syntaxerror所折磨,而且对于一些深入......
  • UE4学习笔记8——获得角色控制,打包
    P25.获得角色控制权的两种方法P26.打包游戏、游戏模式、默认关卡P25第一种方法:在“内容浏览器”(下面),选择内容——ThirdPersonBP——Blueprints中,拖拽一个“Third......
  • range()函数的解释
    range()函数的解释range(start,stop,step)[start,stop)包左不包右如果只有一个数字,那就是是[0,stop)step每一次的步长默认为1下面这个就相当于range(0,6,1)......
  • 农村高中生源转型期提升学生二次函数建模能力的课堂探究
        作为新课程下高中数学核心素养培养的重要目标值,建模能力是学生数学解题能力发展中不可或缺的一种关键能力,也是学生逻辑思维及思维模式有效运用的具体表现。加强......
  • Java中Excel的irr函数计算(附源码)
    publicstaticdoubleirr(double[]income){returnirr(income,0.1D);}publicstaticdoubleirr(double[]values,doubleguess){......
  • Vue学习笔记之vue.js 两个等号 == 和三个等号===的区别
    /**==用于比较两者是否相等,忽略数据类型===用于更严谨的比较,值和值的数据类型都需要同时比较*/<!DOCTYPEhtml><htmllang="en"><head><metacharset="......
  • sql学习笔记
    SQL对大小写不敏感:SELECT与select是相同的。SQL语句后面的分号:某些数据库系统要求在每条SQL语句的末端使用分号。分号是在数据库系统中分隔每条SQL语句的标准......
  • 史上最全的MySQL基础教程(收藏)
    本栏按基础顺序,从零学起,手把手教你学MySQL,详细讲述图解MySQL的基础教程,附带相应的资料和增值项目,您值得收藏!​......