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  

  • 相关阅读:
    下拉菜单的option的value属性值问题
    GDAL1.9.1 IN VS2008 C#中的编译及使用
    多表连接 去重
    【示例代码】HTML+JS 画图板源码分享
    Winet API 支持HTTPP/SOCKS代理
    入门Html
    关于CDC在非控件类中的使用
    The document "ViewController.xib" could not be opened. Could not read archive.
    华为的一道题
    [置顶] WEBSOKET服务器搭建
  • 原文地址:https://www.cnblogs.com/feizianquan/p/10127532.html
Copyright © 2011-2022 走看看