rie duas matrizes para dois campos, mantendo a ordem de classificação das matrizes sincronizadas (sem subconsult

Não há rima ou razão para esta pergunta, a não ser que eu estivesse curioso sobre como alguém iria fazer iss

Plataforma enquanto esperava uma solução SQL-Standard, minha principal concentração é comPostgreSQL 8.4 +. (Eu sei que o 9.0+ tem algumas funções de classificação de array.)

SELECT    id, group, dt
FROM      foo
ORDER BY  id;
  id   | group |    dt
-------+-------+-----------
   1   |  foo  | 2012-01-01
   1   |  bar  | 2012-01-03
   1   |  baz  | 2012-01-02
   2   |  foo  | 2012-01-01
   3   |  bar  | 2012-01-01
   4   |  bar  | 2012-01-01
   4   |  baz  | 2012-01-01

Eu sei que a seguinte consulta está errada, mas o resultado é semelhante ao que estou procurando; uma maneira de amarrar os dois campos (classificação degroup também deve classificardt):

SELECT    id, sort_array(array_agg(group)), array_agg(dt)
FROM      foo
GROUP BY  id;
  id   |     group      |                dt
-------+----------------+------------------------------------
   1   |  {bar,baz,foo} | {2012-01-03,2012-01-02,2012-01-01}
   2   |  {foo}         | {2012-01-01}
   3   |  {bar}         | {2012-01-01}
   4   |  {bar,baz}     | {2012-01-01,2012-01-01}

Existe uma maneira fácil de vincular os campos para classificação, sem usar uma subconsulta? Talvez crie uma matriz de matrizes e depois desnature?

questionAnswers(6)

yourAnswerToTheQuestion