
IF(expr,v1,v2)如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。
SELECT IF(1 > 0,'正确','错误')
->正确
IFNULL(v1,v2)如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。
SELECT IFNULL(null,'Hello Word')
->Hello Word
CASE expression
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE resultEND
CASE 表示函数开始,END 表示函数结束。如果 condition1 成立,则返回 result1, 如果 condition2 成立,则返回 result2,当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了。
SELECT CASE WHEN 1 > 0 THEN '1 > 0' WHEN 2 > 0 THEN '2 > 0' ELSE '3 > 0' END
->1 > 0
注释:个人感觉有点像java中的switch语句
CAST(x AS type) 转换数据类型
字符串日期转换为日期:SELECT CAST("2017-08-29" AS DATE);-> 2017-08-29
a) 函数 AVG([DISTINCT] expr )
函数使用说明:返回 expr 的平均值。 DISTINCT 选项可用于返回 expr 的不同值的平均值。
b) 函数 BIT_AND(expr )
函数使用说明:返回expr 中所有比特的 bitwise AND 。计算执行的精确度为64 比特(BIGINT) 。若找不到匹配的行,则这个函数返回1844 ( 这是无符号 BIGINT 值,所有比特被设置为 1 )。
c) 函数 BIT_OR(expr )
函数使用说明:返回expr 中所有比特的bitwise OR 。计算执行的精确度为64 比特(BIGINT) 。若找不到匹配的行,则函数返回 0 。
d) 函数BIT_XOR(expr )
函数使用说明:返回expr 中所有比特的bitwise XOR 。计算执行的精确度为64 比特(BIGINT) 。若找不到匹配的行,则函数返回 0 。
e) 函数 COUNT(expr )
函数使用说明:返回SELECT 语句检索到的行中非NULL 值的数目。若找不到匹配的行,则COUNT() 返回 0
f) 函数 COUNT(DISTINCT expr ,[expr ])
函数使用说明:返回不同的非NULL 值数目。若找不到匹配的项,则COUNT(DISTINCT) 返回 0
g) 函数 GROUP_CONCAT(expr )
函数使用说明:该函数返回带有来自一个组的连接的非NULL 值的字符串结果。其完整的语法如下所示:
GROUP_CONCAT([DISTINCT] expr [,expr ] [ORDER BY {unsigned_integer | col_name | expr }
[ASC | DESC] [,col_name ]]
[SEPARATOR str_val ])
h) 函数 MIN([DISTINCT] expr ), MAX([DISTINCT] expr )
函数使用说明:返回 expr 的最小值和最大值。 MIN() 和 MAX() 的取值可以是一个字符串参数;在这些情况下, 它们返回最小或最大字符串值。
i) 函数 STD(expr ) STDDEV(expr )
函数使用说明:返回 expr 的总体标准偏差。这是标准 SQL 的延伸。这个函数的 STDDEV() 形式用来提供和 Oracle 的兼容性。可使用标准 SQL 函数 STDDEV_POP() 进行代替
j) 函数 STDDEV_POP(expr )
函数使用说明:返回expr 的总体标准偏差(VAR_POP() 的平方根) 。你也可以使用 STD() 或STDDEV(), 它们具有相同的意义,然而不是标准的 SQL 。若找不到匹配的行,则STDDEV_POP() 返回 NULL
k) 函数 STDDEV_SAMP(expr )
函数使用说明:返回expr 的样本标准差 ( VAR_SAMP() 的平方根) 。若找不到匹配的行,则STDDEV_SAMP() 返回 NULL
l) 函数 SUM([DISTINCT] expr )
函数使用说明:返回expr 的总数。 若返回集合中无任何行,则 SUM() 返回NULL 。DISTINCT 关键词可用于 MySQL 51 中,求得expr 不同值的总和。 若找不到匹配的行,则SUM() 返回 NULL
m) 函数 VAR_POP(expr )
函数使用说明:返回 expr 总体标准方差。它将行视为总体,而不是一个样本, 所以它将行数作为分母。你也可以使用 VARIANCE(), 它具有相同的意义然而不是 标准的 SQL
n) 函数 VAR_SAMP(expr )
函数使用说明:返回expr 的样本方差。更确切的说,分母的数字是行数减去1 。若找不到匹配的行,则VAR_SAMP() 返回NULL
o) 函数VARIANCE(expr )
函数使用说明:返回expr 的总体标准方差。这是标准SQL 的延伸。可使用标准SQL 函数 VAR_POP() 进行代替。若找不到匹配的项,则VARIANCE() 返回NULL
1、数学函数
2、聚合函数(常用于GROUP BY从句的SELECT查询中)、
3、字符串函数
4、日期和时间函数
5、加密函数
6、控制流函数
7、格式化函数
8、类型转化函数
9、系统信息函数
以上就是mysql 中常用的一些函数类型,如果不清楚具体的用法,可以参照相关教程,比如:http://wwwmaizieducom/course/371/
分别在 MySQL5725-log 和 8016 环境中实现类似Oracle的分析函数(80版本中已支持,直接使用即可)。
一、创建测试数据
二、row_number() over()
三、rank() over()
四、dense_rank() over()
五、lag() over()
六、lead() over()
七、待补充
例1:不分组,全部数据添加序列号,类Oracle 的rownum伪列
例2:先按roomid分组,再按照deviceid,counter排序,类Oracle 的row_number() OVER(PARTITION BY ORDER BY )
例1:不分组,全部数据按 roomid 排序,再添加序号,类Oracle 的rank() OVER(ORDER BY)
例2:先按roomid分组,再按deviceid排序,类Oracle 的rank() OVER(PARTITION BY ORDER BY)
例1:不分组,全部数据按roomid排序,再添加序号,类Oracle 的dense_rank() OVER(ORDER BY)
例2:先按roomid分组,再按deviceid排序,类Oracle 的dense_rank() OVER(PARTITION BY ORDER BY)
例1:不分组,全部数据按roomid,deviceid升序排序,类Oracle 的lag() OVER(ORDER BY)
例2:先按roomid分组,再按roomid,deviceid排序,类Oracle 的lag() OVER(PARTITION BY ORDER BY)
例1:不分组,全部数据按roomid,deviceid,counter升序排序,类Oracle 的lead() OVER(ORDER BY)
例2:先按roomid分组,再按deviceid,counter排序,类Oracle 的lead() OVER(PARTITION BY ORDER BY)
mysql中有5种常用的聚合函数:sum()、avg()、max()、min()、count()
AVG():通过计算分组内指定字段值的和,以及分组内的记录数,算出分组内指定字段的平均值。
SUM():可以返回指定字段值的和。求和函数获取的是分组中的合计数据。如果涉及到多个字段分组,一定要知道字段之间有什么样的层次关系。
LEFT(str,n): 表示返回字符串str最左边的n个字符。
AVG()函数:通过计算分组内指定字段值的和,以及分组内的记录数,算出分组内指定字段的平均值。
MAX()函数:表示获取指定字段在分组中的最大值。
MIN()函数:表示获取指定字段在分组中的最小值。
COUNT()函数:了解数据集的大小。
您好,有以下聚合函数,一般有如下:
1count()函数的使用
(1)count() 表示计算表中总的行数,不管某列是否有数值或者是为空;
SELECT COUNT() FROM +TABLE_NAME;
(2)count(字段名称) 表示计算指定列下总的行数,计算式将忽略空值;
SELECT COUNT(字段名称) FROM +TABLE_NAME;
2sum()函数
(1)sum()是 一个求和的函数,返回指定列的总和;
SELECT SUM(字段名称) AS FROM +TABLE_NAME;
3avg()函数
(1)avg()函数是一个返回一个平均值的函数;
SELECT AVG(字段名称) AS FROM +TABLE_NAME
(2)当我们的在使用avg()函数的时候,可以结合group by进行数据的查询;
4MAX()函数
(1)返回指定列中的最大值;
SELECT MAX(字段名称) AS FROM +TABLE_NAME
5MIN()函数
(1)返回指定列中的最小值;
SELECT MIN(字段名称) AS FROM +TABLE_NAME
希望对您有帮助
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)