Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION array_sort_unique (ANYARRAY) RETURNS ANYARRAY
  2. LANGUAGE SQL
  3. AS $body$
  4. SELECT ARRAY(
  5.     SELECT DISTINCT $1[s.i]
  6.     FROM generate_series(array_lower($1,1), array_upper($1,1)) AS s(i)
  7.     ORDER BY 1
  8. );
  9. $body$;
  10.  
  11. UPDATE
  12.   stamp
  13. SET
  14.   same_series = (
  15.     SELECT array_to_json(
  16.         array_sort_unique(
  17.             ARRAY(
  18.                 SELECT
  19.                   ss.catalogue_code
  20.                 FROM
  21.                   same_series ss
  22.                 WHERE
  23.                   ss.link_id IS NULL
  24.                   AND
  25.                   ss.stamp_id = ps.id
  26.  
  27.                 UNION
  28.  
  29.                 SELECT
  30.                   s.catalogue_code
  31.                 FROM
  32.                   same_series ss
  33.                 INNER JOIN
  34.                   stamp s ON ss.link_id = s.id
  35.                 WHERE
  36.                   ss.stamp_id = ps.id
  37.             )
  38.         )
  39.     )
  40.   )
  41. FROM
  42.   stamp ps
  43. WHERE
  44.   ps.id in (
  45.     SELECT
  46.       DISTINCT stamp_id
  47.     FROM
  48.       same_series
  49.   )
  50. ;
  51.  
  52. DROP FUNCTION IF EXISTS array_sort_unique(ANYARRAY);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement