zoukankan      html  css  js  c++  java
  • T-SQL:qualify和window 使用(十七)

    1.qualify

    是一个潜在的额外筛选器

    主要用于对开窗函数的数据筛选

    SELECT orderid, orderdate, val,
      RANK() OVER(ORDER BY val DESC) AS rnk
    FROM Sales.OrderValues
    QUALIFY rnk <= 5;

    标准SQL没用定义qualify子句,它是Teredata特有的特性。

    2.window

    允许我们对窗口进行命名描述;然后在定义其他窗口-即将被串钩函数使用或用来定义另一个命名窗口时,代指这个命名的窗口描述。

    如下

    SELECT empid, ordermonth, qty,
      SUM(qty) OVER (PARTITION BY empid
                     ORDER BY ordermonth
                     ROWS BETWEEN UNBOUNDED PRECEDING
                              AND CURRENT ROW) AS run_sum_qty,
      AVG(qty) OVER (PARTITION BY empid
                     ORDER BY ordermonth
                     ROWS BETWEEN UNBOUNDED PRECEDING
                              AND CURRENT ROW) AS run_avg_qty,
      MIN(qty) OVER (PARTITION BY empid
                     ORDER BY ordermonth
                     ROWS BETWEEN UNBOUNDED PRECEDING
                              AND CURRENT ROW) AS run_min_qty,
      MAX(qty) OVER (PARTITION BY empid
                     ORDER BY ordermonth
                     ROWS BETWEEN UNBOUNDED PRECEDING
                              AND CURRENT ROW) AS run_max_qty
    FROM EmpOrders;

    用window缩写前置查询

    SELECT empid, ordermonth, qty,
      SUM(qty) OVER W1 AS run_sum_qty,
      AVG(qty) OVER W1 AS run_avg_qty,
      MIN(qty) OVER W1 AS run_min_qty,
      MAX(qty) OVER W1 AS run_max_qty
    FROM Sales.EmpOrders
    WINDOW W1 AS ( PARTITION BY empid
                   ORDER BY ordermonth
                   ROWS BETWEEN UNBOUNDED PRECEDING
                            AND CURRENT ROW );

    window吧一个带有分区,排序和框架选项的完整的窗口描述为w1  

  • 相关阅读:
    一个把数据转化成Excel导出的程序 python Django
    Ubuntu常用命令
    Git 常用命令 和 安装
    strick-footer 粘边布局
    Django
    CSS基础 和 font字体、背景属性连写 与 清除浮动方法
    MySQL 40题练习题和答案
    JS(ES6)、Vue.js、node.js
    ORM框架 和 面向对象编程
    MySQL基本指令3 和 索引 、分页
  • 原文地址:https://www.cnblogs.com/feizianquan/p/10127532.html
Copyright © 2011-2022 走看看