CREATE AGGREGATE
目录
CREATE AGGREGATE
NAMESYNOPSIS
DESCRIPTION æè¿°
PARAMETERS åæ°
EXAMPLES ä¾å
COMPATIBILITY å¼å®¹æ§
SEE ALSO åè§
è¯è
è·
NAME
CREATE AGGREGATE - å®ä¹ä¸ä¸ªæ°çèé彿°
SYNOPSIS
CREATE AGGREGATE
name (
BASETYPE = input_data_type,
SFUNC = sfunc,
STYPE = state_data_type
[ , FINALFUNC = ffunc ]
[ , INITCOND = initial_condition ]
)
DESCRIPTION æè¿°
CREATE AGGREGATE å®ä¹ä¸ä¸ªæ°çèé彿°ã ä¸äºç¨äºåºæ¬ç±»åçèé彿°å¦ min(integer) å avg(double precision) çå·²ç»åå«å¨åºç¡è½¯ä»¶åéäºã å¦æä½ éè¦å®ä¹ä¸ä¸ªæ°ç±»åæéè¦ä¸ä¸ªè¿æ²¡ææä¾çèé彿°ï¼è¿æ¶ä¾¿å¯ç¨ CREATE AGGREGATE æ¥æä¾æä»¬æéè¦çç¹æ§ã
妿ç»åºäºä¸ä¸ªæ¨¡å¼çååï¼æ¯å¦ï¼CREATE AGGREGATE myschema.myagg ...ï¼ï¼é£ä¹è¯¥èé彿°æ¯å¨æå®æ¨¡å¼ä¸å建çã å¦å宿¯å¨å½å模å¼ä¸å建çã
ä¸ä¸ªèé彿°æ¯ç¨å®çåååè¾å¥æ°æ®ç±»åæ¥æ è¯çã å䏿¨¡å¼ä¸- å¦æä¸¤ä¸ªèéå¤ççè¾å¥æ°æ®ä¸åï¼å®ä»¬å¯ä»¥æç¸åçååã ä¸ä¸ªèé彿°çè¾å¥æ°æ®ç±»åå¿é¡»åææå䏿¨¡å¼ä¸çæ®é彿°çåååè¾å¥ç±»åä¸åã
ä¸ä¸ªèé彿°æ¯ç¨ä¸ä¸ªæä¸¤ä¸ªæ®é彿°åæçï¼ ä¸ä¸ªç¶æè½¬æ¢å½æ° sfunc, åä¸ä¸ªå¯éçç»è®¡ç®å½æ° ffunc. å®ä»¬æ¯è¿æ ·ä½¿ç¨çï¼
sfunc(
internal-state, next-data-item ) ---> next-internal-state
ffunc( internal-state ) ---> aggregate-value
PostgreSQL å建ä¸ä¸ªç±»å为 stypeç临æ¶åéã å®ä¿åè¿ä¸ªèéçå½ååé¨ç¶æã å¯¹äºæ¯ä¸ªè¾å¥æ°æ®æ¡ç®ï¼ é½è°ç¨ç¶æè½¬æ¢å½æ°è®¡ç®åé¨ç¶æå¼çæ°æ°å¼ã å¨å¤çå®æææ°æ®åï¼è°ç¨ä¸æ¬¡æç»å¤ç彿°ä»¥è®¡ç®èéçè¿åå¼ã å¦ææ²¡ææç»å¤ç彿°ï¼é£ä¹å°æåçç¶æå¼å½åè¿åå¼ã
ä¸ä¸ªèé彿°è¿å¯è½æä¾ä¸ä¸ªåå§æ¡ä»¶ï¼ä¹å°±æ¯è¯´ï¼æç¨ç该åé¨ç¶æå¼çåå§å¼ã è¿ä¸ªå¼æ¯ä½ä¸ºä¸ä¸ªç±»å为 text çåæ®µåå¨å¨æ°æ®åºéçï¼ ä¸è¿å®ä»¬å¿é¡»æ¯ç¶æå¼æ°æ®ç±»åçåæ³çå¤é¨è¡¨ç°å½¢å¼ç常éã å¦ææ²¡ææä¾ç¶æï¼é£ä¹ç¶æå¼åå§å为 NULLã
å¦æè¯¥ç¶æè½¬æ¢å½æ°è¢«å®ä¹ä¸º "strict"ï¼ é£ä¹å°±ä¸è½ç¨ NULL è¾å¥è°ç¨å®ãè¿ä¸ªæ¶åï¼å¸¦æè¿æ ·ç转æ¢å½æ°çèéæ§è¡èµ·æ¥çç°è±¡å¦ä¸æè¿°ã NULL è¾å¥çå¼è¢«å¿½ç¥ï¼ä¸è°ç¨æ¤å½æ°å¹¶ä¸ä¿çåä¸ä¸ªç¶æå¼ï¼ã妿åå§ç¶æå¼æ¯ NULLï¼é£ä¹ç±ç¬¬ä¸ä¸ªé NULL 弿¿æ¢è¯¥ç¶æå¼ï¼ èç¶æè½¬æ¢å½æ°ä»ç¬¬äºä¸ªé NULL çè¾å¥å¼å¼å§è°ç¨ãè¿æ ·å让æä»¬æ¯è¾å®¹æå®ç°è±¡ max è¿æ ·çèéã 请注æè¿ç§è¡ä¸ºåªæ¯å½ state_type ä¸ input_data_type ç¸åçæ¶åæè¡¨ç°åºæ¥ã 妿è¿äºç±»åä¸åï¼ä½ å¿é¡»æä¾ä¸ä¸ªé NULL çåå§æ¡ä»¶æè使ç¨ä¸ä¸ªéstriceçç¶æè½¬æ¢å½æ°ã
å¦æç¶æè½¬æ¢å½æ°ä¸æ¯ strictï¼ä¸¥æ ¼ï¼çï¼ é£ä¹å®å°æ æ¡ä»¶å°ä¸ºæ¯ä¸ªè¾å¥å¼è°ç¨ï¼ å¹¶ä¸å¿é¡»èªè¡å¤ç NULL è¾å¥å NULL 转æ¢å¼ï¼ è¿æ ·å°±å许èéçä½è对èéä¸çç©ºå¼æå®å¨çæ§å¶ã
妿ç»è½¬æ¢å½æ°å®ä¹ä¸º"strict"ï¼å妿æç»ç¶æå¼æ¯ NULL æ¶å°±ä¸ä¼è°ç¨å®ï¼ èæ¯èªå¨è¾åºä¸ä¸ªNULLçç»æãï¼å½ç¶ï¼è¿ææ¯ strict 彿°çæ£å¸¸ç¹å¾ãï¼ ä¸ç®¡æ¯é£ç§æåµï¼ç»å¤ç彿°å¯ä»¥éæ©è¿å NULLãæ¯å¦ï¼ avg çç»å¤ç彿°å¨é¶è¾å¥è®°å½æ¶å°±ä¼è¿å NULLã
PARAMETERS åæ°
|
name |
è¦å建çèé彿°åï¼å¯ä»¥ææ¨¡å¼ä¿®é¥°çï¼ã |
input_data_type
æ¬èé彿°è¦å¤ççåºæ¬æ°æ®ç±»åã 对äºä¸æ£æ¥è¾å¥ç±»åçèéæ¥è¯´ï¼è¿ä¸ªåæ°å¯ä»¥å£°æä¸º"ANY"ã ï¼æ¯å¦ count(*)ï¼ã
|
sfunc |
ç¨äºå¤çæºæ°æ®åéçæ¯ä¸ä¸ªè¾å¥æ°æ®çç¶æè½¬æ¢å½æ°åç§°ã å®é常æ¯ä¸ä¸ªååæ°ç彿°ï¼ç¬¬ä¸ä¸ªåæ°çç±»åæ¯ state_data_type è第äºä¸ªåæ°çç±»åæ¯ input_data_type. å¦å¤ï¼å¯¹äºä¸ä¸ªä¸æ£æ¥è¾å¥æ°æ®çèéï¼è¯¥å½æ°åªæ¥åä¸ä¸ªç±»å为 state_data_type çåæ°ã ä¸ç®¡æ¯åªç§æåµï¼æ- ¤å½æ°å¿é¡»è¿åä¸ä¸ªç±»å为 state_data_typeçå¼ã è¿ä¸ªå½æ°æ¥åå½åç¶æå¼åå½åè¾å¥æ°æ®æ¡ç®ï¼èè¿åä¸ä¸ªç¶æå¼ã |
state_data_type
èéçç¶æå¼çæ°æ®ç±»åã
|
ffunc |
å¨è½¬æ¢å®ææè¾å¥å/åæ®µåè°ç¨çæç»å¤ç彿°ãå®è®¡ç®èéçç»æã æ- ¤å½æ°å¿é¡»æ¥åä¸ä¸ªç±»å为 state_data_type çåæ°ã èéçè¾åºæ°æ®ç±»å被å®ä¹ä¸ºæ¤å½æ°çè¿åç±»åã å¦ææ²¡æå£°æ ffunc å使ç¨èéç»æçç¶æå¼ä½ä¸ºèéçç»æï¼èè¾åºç±»å为 state_data_typeã |
initial_condition
ç¶æå¼çåå§è®¾ç½®ï¼å¼ï¼ãå®å¿é¡»æ¯ä¸ä¸ªæ°æ®ç±»å state_data_type å¯ä»¥æ¥åçææ¬å¸¸éå¼ã å¦ææ²¡æå£°æï¼ç¶æå¼åå§ä¸º NULLã
CREATE AGGREGATE çåæ°å¯ä»¥ä»¥ä»»ä½é¡ºåºä¹¦åï¼èä¸åªæ¯ä¸é¢æ¾ç¤ºç顺åºã
EXAMPLES ä¾å
åé ‘‘User-defined Aggregates’’
COMPATIBILITY å¼å®¹æ§
CREATE AGGREGATE æ¯ PostgreSQL è¯è¨çæ©å±ã å¨ SQL æ åéæ²¡æ CREATE AGGREGATEã
SEE ALSO åè§
ALTER AGGREGATE [alter_aggregate(7)], DROP AGGREGATE [drop_aggregate(l)]
è¯è
Postgresql 䏿ç½ç« ä½ä¼å¹³ <laser@pgsqldb.org>
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh