zoukankan      html  css  js  c++  java
  • SAPHANA学习(23):SQL Function(W)

    /*

    149.WEEK

    WEEK(<date>)

    返回周数

    WEEKDAY(<date>)

    返回日期所在周天,星期1(0)~星期天(6)

    */

    SELECT  WEEK(TO_DATE('2011-05-30', 'YYYY-MM-DD'))  FROM DUMMY;
    SELECT  WEEK ('2017-01-02') FROM DUMMY;
    SELECT WEEKDAY (TO_DATE ('2010-12-31', 'YYYY-MM-DD')) "week day" FROM DUMMY;

    /*

    150. WEIGHTED_AVG

    WEIGHTED_AVG(<expression>) <window_specification>

    计算规则:

    weight(<i>) = 2 * (<n> + 1 - <i>) / (<n> * (<n> + 1))

    */

    CREATE ROW TABLE TEST_WEIGHT (station INT, ts DATE, temperature FLOAT);
    INSERT INTO TEST_WEIGHT VALUES(1, '2014-01-01', 0.0);
    INSERT INTO TEST_WEIGHT VALUES(1, '2014-01-02', 3.0);
    INSERT INTO TEST_WEIGHT VALUES(1, '2014-01-03', 4.5);
    INSERT INTO TEST_WEIGHT VALUES(2, '2014-01-04', 6.0);
    INSERT INTO TEST_WEIGHT VALUES(2, '2014-01-05', 6.3);
    
    SELECT
           ts,
           temperature,
           WEIGHTED_AVG(temperature)
           OVER (ORDER BY ts ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)
           FROM TEST_WEIGHT ORDER BY ts;

    /*

    151. WIDTH_BUCKET

    WIDTH_BUCKET(<expression>, <min_value>, <max_value>, <num_buckets>)

    <expression>数字类型或者时间类型,或者能够转换成的类型

    <min_value>

    <max_value>

    <num_buckets>

    */

    CREATE TABLE TEST_WIDTH_BUCKET (NUM INT);
    INSERT INTO TEST_WIDTH_BUCKET VALUES(1);
    INSERT INTO TEST_WIDTH_BUCKET VALUES(2);
    INSERT INTO TEST_WIDTH_BUCKET VALUES(3);
    INSERT INTO TEST_WIDTH_BUCKET VALUES(4);
    INSERT INTO TEST_WIDTH_BUCKET VALUES(5);
    
    --不存在?
    --SELECT *, WIDTH_BUCKET( NUM, 2, 5, 2 ) FROM TEST_WIDTH_BUCKET;

    /*

    152. WORKDAYS_BETWEEN

    WORKDAYS_BETWEEN(<factory_calendar_id>, <start_date>, <end_date> [, <source_schema>])

    计算开始日期和结束日期之间的工作日数

    <factory_calendar_id> ::= <string_literal>

    工厂日历ID,工厂日历表:TFACS

    <start_date> ::= <string_literal> | <DATE>

    <end_date> ::= <string_literal> | <DATE>

    <source_schema> ::= <string_literal>

    TFACS所在schema

    如果<start_date>小于<end_date>,返回之间工作日,包括<start_date>,不包括<end_date>

    如果<start_date>大于<end_date>,返回负数工作日,包括<end_date>,不包括<start_date>

    */

    --SELECT WORKDAYS_BETWEEN('01', '2014-01-09', '2014-01-10' , 'FCTEST') FROM DUMMY;
  • 相关阅读:
    日期类和包装类
    集合——list
    数组
    多态小结
    一些概念性的知识点
    简单的图书管理系统
    一个小总结
    python-web自动化:上传操作
    python-web自动化:日期框操作
    python-web自动化:滚动条
  • 原文地址:https://www.cnblogs.com/tangToms/p/13939794.html
Copyright © 2011-2022 走看看