1. 程式人生 > >GreenPlum之數組合並取交集及行變列、列變行函數

GreenPlum之數組合並取交集及行變列、列變行函數

blog ner fun cnblogs $1 $$ ble lec temp

--1.利用INTERSECT關鍵字數組之間交集函數
CREATE OR REPLACE FUNCTION array_intersect(anyarray, anyarray)  
RETURNS anyarray  
AS 
$$     
SELECT ARRAY(        
SELECT UNNEST($1)        
INTERSECT        
SELECT UNNEST($2));
$$ LANGUAGE SQL;

select array_intersect(array[1,2,3],array[2,3,4]);

--2.行變列函數UNNEST
select UNNEST(array[1,2,3]);

--3.列變行函數array_agg:
create temporary table temp_test01 as
select array_agg(c) aggtest from (values(NULL),(‘1‘),(‘2‘),(‘3‘))tb(c);

select UNNEST(aggtest) from temp_test01;

select array_agg((id)) from (select id,md5(random()::text),clock_timestamp() from generate_series(1,100) t(id)) t1;

  

GreenPlum之數組合並取交集及行變列、列變行函數