共通機能
システムは機能が付属しています
COALESCEは() :リスト内のすべての値がNULL、NULLが返されている場合、リスト内の最初の非NULL値を返します。
例えば:
CONCAT() :文字列の連結機能と、
例えば:
少なくとも() :最小の入力パラメータを返します
最大() :入力パラメータ(VAR1の最大を返す、VAR2は、ダブル、日時文字列をBIGINTもよく、またはすべての値がNULLが戻されたNULLである場合。
戻り値:入力パラメータの最大値、暗黙の変換が存在しない同じ型を返す入力パラメータ。NULL最小。入力パラメータのタイプが異なる場合、変換された二重二重、BIGINT、文字列間の比較、文字列は、変換された日時の日時を比較します。他の暗黙の変換なし)
デコード() :分岐選択機能を実現するために
例えば:選択デコード(CUSTOMER_ID、
1、 '淘宝網'、
2、 'アリペイ'、
3、Aliyun、
NULL、 'N / A'、
結果として「その他」)
sale_detailから。
上記の次の関数はのif-then-else文の機能を実装してデコードします。
= 1その後、CUSTOMER_ID場合
結果:= '淘宝網';
ELSIF CUSTOMER_ID = 2その後、
結果:= 'アリペイ';
ELSIF CUSTOMER_ID = 3その後、
結果:=「Aliyun。
...
他
結果:= 'その他';
場合は終了。
もし関数:(論理的条件、coumn1、coumn2)が2のそれ以外の場合、出力値は、出力条件が満たされる表す場合
例えば:もし(cap_directionないbigint型として( '0'、 '1')、ヌル、キャスト(cap_direction)中)。
SUBSTR() :長さ長START_POSITIONの先頭から文字列strの部分文字列を返します。
例えば:SUBSTR( "" ABC ""、2)= "" BC ""; SUBSTR( "" ABC ""、2、1)= "" B ""。
TO_CHAR() :ブール型、BIGINT型、小数型またはdouble型は、対応するに文字列の種類を表します。
例えば:TO_CHAR(123)= '123'; TO_CHAR(真)= 'TRUE'; TO_CHAR(1.23)= '1.23'; TO_CHAR(NULL)= NULL;
TO_CHAR() :入力タイプ文字列が暗黙的に計算に関与日時型に変換場合日時型は、日付値を変換するために、例外の他のタイプのスロー。
例えば:TO_CHAR(GETDATE() 'YYYYMMDD')
CONCAT(coumn1、 ''、coumn2) :文字列の連結機能
2つの精度に一致します:
'120.08,30.28' のような連結(SUBSTR(TO_CHAR(LNG)、1,6)、 ''、SUBSTR(TO_CHAR(LAT)、1,5))。
REGEXP_EXTRACT(coumn、 ''、ナンバー):スプリット文字列関数
以下のような:バルカントロとプロの道の交差点
regexp_extract(inter_name、 '(。*?)(道路)'、1)=プロ東
regexp_extract(inter_name、 'と(。*?)(交差点)'、1)=バルカントロ
REGEXP_REPLACE:文字列置換機能
REGEXP_REPLACE(round_name、 ' - '、 ''、1)バーを表し - 置換ヌル
split_partの関数に文字列
split_part( 'ノースセントラル - 橋密'、 ' - '、2)=密度橋
InStr関数:str1はstr2の中の文字列内のサブストリングの位置を計算
INSTR( 'E' 'ネット上のテック')= 2; INSTR( 'E' 'ネット上のテック'、1、1)= 2
キャスト
coors_convert(LNG、LAT、1):Googleは高地ドイツ語coors_convert(120.2334214,30.21829241,1)を回し
WHERE judge_location(split_part(coors_convert(a.lng、a.lat、1)、 ''、1)、split_part(coors_convert(a.lng、a.lat、1) '' 2))= 1
窓関数
统计量:数、合計、平均、最大/最小値、中央値、STDDEV、STDDEV_SAMP
排名:row_unmber、ランク、DENSE_RANK、PERCENT_RANK
その他のカテゴリー:ラグ、鉛、cluster_sample
--------------------
基本的な使用方法;ウィンドウと呼ばれる特定の条件に応じて、グループへのデータは、各グループは、ウィンドウと呼ばれています
柱部によるパーティションは、開窓を指定するために使用され
同じパーティション列行の値は、同じウィンドウAに考えられています
ウィンドウ内のデータをソートすることによって順序を指定する方法
制限事項:それは唯一のselect句に表示されます
ウィンドウ関数ウィンドウ関数とネストされた集計関数を使用しないでください。
そして、凝集の同じレベルが一緒に機能しないことがあります
ODPのSQL文は、5窓関数まで使用することができます
Partitionウィンドウは、同じウィンドウには、データの億行まで含まれている場合
行のウィンドウは、xは、yは定数0以上の整数でなければならない場合、0〜10000の範囲を制限する、0の値は、現在の行を示し
あなたは、行の方法でウィンドウの範囲を指定することができることにより、順序を使用する必要があります。
すべてのウィンドウ関数はウィンドウ関数の平均です、カウント、最大、最小、STDDEVと和のこの使用をサポートするために、行でウィンドウを指定できるわけではありません
----------------------
栗のために
(からmindistance_monitor_idとして)*を選択し、ランク()(距離によってMONITOR_ID順序によってパーティション)を超えます
カスタム機能
アリクラウドのODPに基づいて適切なカスタム関数を作ります
注意:この例をのODPのバージョンが低すぎるため:ステップバイaliyun例Mavenのパッケージのステップを作成するときには使用されず、代わりに、独自のパッケージを使用しての、原因問題のjarファイルのバックアウトするステップ例バイステップの採用に(瓶の外に何のクラスのリソースは、リソースのみ)をプロファイルません。
用語集:
UDF:入力と出力の関係の一つであるユーザ定義のスカラー値関数(ユーザー定義スカラー関数)、(複数のパラメータを有していてもよい)データの1本のラインを読み出し、出力値を書き込みます
UDTF:カスタム関数テーブル値(ユーザー定義テーブル値関数)は、関数呼び出しは、カスタム関数を複数のフィールドを返すために、シーンの複数行の出力データを解くために使用されます
UDAF:カスタム集計関数(ユーザ定義集約関数)と、1つの関係に多くの入力及び出力は、入力レコードの複数の出力値に集約(および文によって基と結合することができます)