加入收藏 | 设为首页 | 会员中心 | 我要投稿 均轻资讯网 (https://www.ijunqing.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL-窗函数

发布时间:2022-09-17 12:57:24 所属栏目:MySql教程 来源:
导读:  从8.0版开始MySQL 函数,MySQL已支持窗口功能。 窗口功能能够以新的,更轻松的方式并以更好的性能解决查询问题。假设有一个销售表,其中存储了按员工和会计年度划分的销售额:

  mysql length 函数_mysq

  从8.0版开始MySQL 函数,MySQL已支持窗口功能。 窗口功能能够以新的,更轻松的方式并以更好的性能解决查询问题。假设有一个销售表,其中存储了按员工和会计年度划分的销售额:
 
  mysql length 函数_mysql round函数_MySQL 函数
 
  mysql length 函数_mysql round函数_MySQL 函数
 
  mysql length 函数_MySQL 函数_mysql round函数
 
  图表信息
 
  聚合函数将多行中的数据汇总到单个结果行中。 例如,SUM()函数返回记录的年份中所有雇员的总销售额:
 
  MySQL 函数_mysql round函数_mysql length 函数
 
  GROUP BY子句允许将聚合函数应用于行的子集。 例如要按会计年度计算总销售额:
 
  mysql length 函数_MySQL 函数_mysql round函数
 
  在两个示例中,聚合函数都减少了查询返回的行数。像带有GROUP BY子句的聚合函数一样,窗口函数也可对行的子集进行操作,但它们不会减少查询返回的行数。例如,以下查询返回每个雇员的销售额以及该雇员按会计年度的总销售额:
 
  mysql length 函数_mysql round函数_MySQL 函数
 
  这个例子中,SUM()函数用作窗口函数,该窗口函数对由OVER子句的内容定义的一组行进行操作。 SUM()函数应用到的一组行称为窗口。SUM()窗口函数像使用GROUP BY子句的查询那样按年度报告总销售额,而且还报告每一行的结果,而不返回总行数。窗口函数是在所有JOIN,WHERE,GROUP BY和HAVING子句之后以及ORDER BY,LIMIT和SELECT DISTINCT之前的结果集上执行的。在这个例子中,SUM()函数用作在由OVER子句的内容定义的一组行。
 
  基本语句:
 
  mysql length 函数_mysql round函数_MySQL 函数
 
  解释:
 
  在这个语法中:
 
  首先,指定窗口函数名称,后跟一个表达式。
 
  其次,指定具有三个可能元素的OVER子句:分区定义,顺序定义和框架定义。
 
  没有表达式,OVER子句后的左括号和右括号是一定要写的,例如:
 
  partition_clause语法:partition_clause将行分成块或分区。两个分区由分区边界分隔。
 
  窗口功能在分区内执行,并在跨越分区边界时重新初始化。
 
  PARTITION BY [{,...}]
 
  order_by_clause语法:ORDER BY [ASC|DESC], [{,...}]
 
  ORDER BY子句指定分区中行的排序方式。可以在多个键上的分区中对数据进行排序,每个键由一个表达式指定。多个表达式也用逗号分隔。与PARTITION BY子句相似,所有窗口函数也支持ORDER BY子句。但是,仅对顺序敏感的窗口函数使用ORDER BY子句才有意义。
 

(编辑:均轻资讯网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!