sql >> Databasteknik >  >> RDS >> PostgreSQL

DISTINCT med två array_agg (eller en array_agg med tupel inuti)?

I likhet med vad jag svarade på din föregående fråga , bara med ARRAY of rows som du föreslog och kortare positionsbeteckning:

SELECT DISTINCT ON (1)
       p, groundtruth, array_agg(ROW(anchor_id, id)) AS ids
FROM (
   SELECT DISTINCT ON (1, 2, 3)
          ps.p, m.groundtruth, m.anchor_id, m.id
   FROM  (SELECT unnest(point_array) AS p) AS ps
   JOIN   measurement m ON ST_DWithin(ps.p, m.groundtruth, distance)
   ORDER  BY 1, 2, 3, random()
   ) x
GROUP  BY 1, 2
ORDER  BY 1, random();

Men jag gillar den andra versionen med en 2-dimensionell array bättre.




  1. Begränsa tecken som returneras i oracle sql-fråga

  2. Massinsättning i MYSQL från XML-filer

  3. Hur man anser Förklara plan som bra- Oracle 10G

  4. MySQL PÅ DUBLIKATNYCKEL - senaste infognings-id?