PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

DISTINCT с два array_agg (или един array_agg с кортеж вътре)?

Подобно на това, което отговорих на вашия предишен въпрос , само с ARRAY of rows както предложихте и по-кратко позиционно означение:

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();

Но другата версия с двуизмерен масив ми харесва повече.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails &Postgresql:как да групирате заявки по час?

  2. Убийте сесия/връзка на postgresql

  3. Как работи INTERSECT в PostgreSQL

  4. Postgresql регулярен израз за съвпадение с главни букви, съобразен с Unicode

  5. Проверете за пълни дублирани редове в голяма таблица