ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SAPHANA学习(23):SQL Function(W)

2020-11-07 09:00:36  阅读:318  来源: 互联网

标签:Function SAPHANA 01 INSERT BUCKET WIDTH VALUES SQL TEST


/*

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;

 

标签:Function,SAPHANA,01,INSERT,BUCKET,WIDTH,VALUES,SQL,TEST
来源: https://www.cnblogs.com/tangToms/p/13939794.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有