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?