CREATE FUNCTION array_unique(anyarray)
RETURNS anyarray
language sql
as $FUNCTION$
SELECT ARRAY(
SELECT id FROM (
SELECT UNNEST($1) as id
) t
GROUP BY id
ORDER BY count(*) desc
);
$FUNCTION$;
четверг, 14 июля 2011 г.
array function array_size in postgresql
CREATE OR REPLACE FUNCTION array_size(anyarray)
RETURNS bigint
language sql
as $FUNCTION$
SELECT count(*) FROM (
SELECT UNNEST($1)
) t;
$FUNCTION$;
RETURNS bigint
language sql
as $FUNCTION$
SELECT count(*) FROM (
SELECT UNNEST($1)
) t;
$FUNCTION$;
среда, 13 июля 2011 г.
array function array_diff in postgresql
CREATE OR REPLACE FUNCTION array_diff(anyarray, anyarray)
RETURNS anyarray
language sql
as $FUNCTION$
SELECT ARRAY(
SELECT * FROM (SELECT UNNEST($1) as element) t WHERE element not in (SELECT UNNEST($2))
);
$FUNCTION$;
RETURNS anyarray
language sql
as $FUNCTION$
SELECT ARRAY(
SELECT * FROM (SELECT UNNEST($1) as element) t WHERE element not in (SELECT UNNEST($2))
);
$FUNCTION$;
array aggregate and function array_union like union all in postgresql
CREATE FUNCTION array_union(anyarray, anyarray)
RETURNS anyarray
language sql
as $FUNCTION$
SELECT ARRAY(
SELECT UNNEST($1)
UNION ALL
SELECT UNNEST($2)
);
$FUNCTION$;
CREATE AGGREGATE array_union (anyarray)
(
sfunc = array_union,
stype = anyarray,
initcond = '{}'
);
RETURNS anyarray
language sql
as $FUNCTION$
SELECT ARRAY(
SELECT UNNEST($1)
UNION ALL
SELECT UNNEST($2)
);
$FUNCTION$;
CREATE AGGREGATE array_union (anyarray)
(
sfunc = array_union,
stype = anyarray,
initcond = '{}'
);
array function array_intersect in postgresql
CREATE FUNCTION array_intersect(anyarray, anyarray)
RETURNS anyarray
language sql
as $FUNCTION$
SELECT ARRAY(
SELECT UNNEST($1)
INTERSECT
SELECT UNNEST($2)
);
$FUNCTION$;
RETURNS anyarray
language sql
as $FUNCTION$
SELECT ARRAY(
SELECT UNNEST($1)
INTERSECT
SELECT UNNEST($2)
);
$FUNCTION$;
Подписаться на:
Комментарии (Atom)