`
fxyc
  • 浏览: 121651 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Teradata的OLAP函数使用(3)

 
阅读更多

5,剩余视窗聚合(就是除去选中的)

SELECT  
    salesdate
    ,itemid
    ,sales
    ,SUM(sales)   OVER (ORDER BY salesdate ASC ROWS BETWEEN CURRENT ROW AND unbounded following)    AS "AMsum" 
    ,CAST((AMsum - sales)AS DECIMAL(6,2)) AS "excl. current" 
    ,SUM(sales)   OVER (ORDER BY salesdate ASC ROWS BETWEEN 1 following AND unbounded following)            AS "AM1sum" 
FROM daily_sales 
ORDER BY salesdate ASC 

 结果如下:

salesdate              itemid       sales      AMsum        excl. current     AM1sum
========           =====   =====   ======       =========   ==========
1997-01-01             10       350.00      4100.00         3750.00      3750.00
1997-01-02             10       100.00      3750.00         3650.00      3650.00
1997-01-03             10       250.00      3650.00         3400.00      3400.00
1997-01-05             10       350.00      3400.00         3050.00      3050.00
1997-01-10             10       450.00      3050.00         2600.00      2600.00
1997-01-21             10       250.00      2600.00         2350.00      2350.00
1997-01-25             10       300.00      2350.00         2050.00      2050.00
1997-01-31             10       100.00      2050.00         1950.00      1950.00
1997-02-01             10       550.00      1950.00         1400.00      1400.00
1997-02-03             10       350.00      1400.00         1050.00      1050.00
1997-02-06             10       150.00      1050.00          900.00       900.00
1997-02-17             10       250.00       900.00          650.00       650.00
1997-02-20             10       500.00       650.00          150.00       150.00
1997-02-27             10       150.00       150.00             .00           ?    

 BETWEEN CURRENT ROW AND unbounded following:当前行到记录结束的所以行

 BETWEEN 1 following AND unbounded following      :从下面一条到最后一条记录的

unbounded :不限制(后一般跟着 PRECEDING:前面的记录 following:接下来的记录 )

6,排队

SELECT 
    itemid
    ,salesdate
    ,sales
    ,RANK() OVER (ORDER BY sales DESC) 
FROM daily_sales_2004
WHERE salesdate BETWEEN DATE '2004-01-01‘ AND DATE '2004-03-01’

 结果如下

     itemid salesdate        sales       Rank(sales)
     -------- -------------    -----------    -----------------
         10   04/01/10       550.00             	     1
         10   04/02/17       550.00             	     1
         10   04/02/20       450.00             	     3
         10   04/02/06       350.00             	     4
         10   04/02/27       350.00             	     4
         10   04/01/05       350.00             	     4
         10   04/01/03       250.00             	     7
         10   04/02/03       250.00             	     7
         10   04/01/25       200.00             	     9
         10   04/01/02       200.00        	     9
         10   04/01/21       150.00            	   11
         10   04/02/01       150.00            	   11
         10   04/01/01       150.00            	   11
         10   04/01/31       100.00            	   14

 Rank()的如果重复记录的队列会相同。接下来会奖行号,这个不会重复。

 

7.行号

SELECT itemid, salesdate, sales,
       ROW_NUMBER() OVER (ORDER BY sales DESC) 
  FROM daily_sales_2004 
 WHERE salesdate BETWEEN DATE '2004-01-01' AND DATE '2004-03-01’

 

结果如下

    itemid  salesdate       sales    Row_Number()
-----------  -------------    -----------    ---------------------
         10   04/01/10       550.00             	 1
         10   04/02/17       550.00             	 2
         10   04/02/20       450.00             	 3
         10   04/02/06       350.00             	 4
         10   04/02/27       350.00             	 5
         10   04/01/05       350.00             	 6
         10   04/01/03       250.00             	 7
         10   04/02/03       250.00             	 8
         10   04/01/25       200.00             	 9
         10   04/01/02       200.00        	10
         10   04/01/21       150.00            	11
         10   04/02/01       150.00            	12
         10   04/01/01       150.00            	13
         10   04/01/31       100.00            	14

 看见了吧,行号是连续的。

分享到:
评论

相关推荐

    TERADATAOLAP函数[收集].pdf

    标题"TERADATA OLAP函数[收集].pdf"涉及到的是Teradata数据库中的在线分析处理(OLAP)函数的使用。这些函数是专为数据挖掘和统计分析设计的,允许用户在标准SQL中执行复杂的分析操作。OLAP函数的主要特点是可以对...

    TERADATAOLAP函数.pdf

    【Teradata OLAP函数详解】 在线分析处理(OLAP)函数是Teradata数据库中用于高效进行数据分析的关键工具,尤其适用于复杂的数据挖掘和统计分析。这些函数允许用户在标准SQL环境中执行高级运算,如排队、分位数计算...

    teradata-sql-Basic-tutorial.zip_Teradata 教程_teradata

    8. **数据仓库概念**:Teradata作为数据仓库系统,可能涵盖数据仓库设计原则,如数据清洗、ETL(提取、转换、加载)过程和OLAP(在线分析处理)操作。 9. **高级特性**:可能还包括窗口函数、游标、存储过程、...

    Teradata RDBMS SQL

    3. **术语更新**:将"OLAP Functions"术语更新为"Ordered Analytical Functions",反映了对有序分析功能的更准确描述。 4. **游标和游标控制语句**:新增章节包含了游标和游标控制语句的语法,这对于处理复杂的事务...

    teradata基础知识

    Teradata使用哈希算法来确定数据在物理磁盘上的分布。每个表都有一个主索引(Primary Index),它决定了数据如何被哈希分配到不同的AMP(Access Method Processor)上。 **3.2 TERADATA数据分配示例** 例如,假设...

    Terdata Performance tuning

    标题和描述中提到的知识点主要集中在Teradata性能调优,具体来说,涵盖了Teradata空间管理、OLAP排序分析以及日期函数这三个方面。 首先,Teradata空间管理是Teradata系统中非常关键的一个组成部分,它与性能...

    Teradata基础教程

    - **客户案例:** 分析使用Teradata数据库的主要客户的成功案例,探讨其在不同行业的应用。 通过以上章节的梳理,我们可以看到Teradata数据库不仅在技术层面提供了强大的数据管理和分析能力,还在实践中帮助众多...

    mdx资料.rarmdx资料.rar

    3. **SQL与MDX的结合**:虽然MDX不是Teradata原生的查询语言,但教程可能探讨如何在Teradata环境中使用MDX进行高级查询。 4. **多维数据集和立方体**:解释Teradata如何支持多维数据结构,以及如何使用MDX查询这些...

    大数据技术分享 数据仓库工具介绍文章汇总 共45页.pdf

    3. **OLAP**: - **MS OLAP Analysis Service**:适用于Windows平台,满足中小型数据仓库应用。 - **Hyperion Essbase OLAP Server**:适用于Unix平台,满足大型、超大数据仓库应用。 - **IBM DB2 OLAP Server**...

    RapidsDB海量并行SQL在大数据深度学习中的运用

    1. SQL标准支持:RapidsDB遵循ANSI 2011 SQL标准,并支持SQL OLAP函数,这意味着它能够执行复杂的分析查询和处理大型数据集。它支持包括DB2、Oracle、Teradata和Hbase在内的多种数据源,通过联邦访问功能允许用户对...

    数据库设计准则及方法论.docx

    避免在索引列上使用函数,为需要排序的列创建索引,并利用include关键字创建覆盖索引,以减少回表操作。同时,理解数据库的页大小对OLTP和OLAP应用的影响,选择合适的页大小可以显著提高性能。表空间设计也需考虑,...

    essbase框架说明

    Essbase,作为一款高性能在线分析处理(OLAP)系统,为用户提供了一套全面的数据分析和建模解决方案。它不仅支持多维数据库的高效管理和分析,还具备跨平台兼容性,能够无缝集成主流数据库和数据仓库产品,满足大数据...

Global site tag (gtag.js) - Google Analytics