Postgresql 连接结果的顺序
我有这个疑问Postgresql 连接结果的顺序,postgresql,join,Postgresql,Join,我有这个疑问 SELECT orden.id, array_to_string(array_agg(observaciones.fecha_hora),'<br>') as observaciones FROM orden LEFT JOIN observacion observaciones ON observaciones.orden_id = orden.id GROUP BY orden.id 问题是,我怎样才能得到这些日期和时间以便描述 我不能做子查询,因为我正在优化一个
SELECT orden.id,
array_to_string(array_agg(observaciones.fecha_hora),'<br>') as observaciones
FROM orden
LEFT JOIN observacion observaciones ON observaciones.orden_id = orden.id
GROUP BY orden.id
问题是,我怎样才能得到这些日期和时间以便描述
我不能做子查询,因为我正在优化一个旧查询,我真的需要一个连接。
我正在使用postgresql。我对postgresql一无所知,但在SQL中,您可以将其放入临时表中,然后对临时表进行排序
SELECT orden.id
, array_to_string(array_agg(observaciones.fecha_hora),'<br>') as observaciones
INTO #orden
FROM orden
LEFT JOIN observacion observaciones
ON observaciones.orden_id = orden.id
GROUP BY orden.id
SELECT id
, observaciones
FROM #orden
ORDER BY observaciones
DROP TABLE #orden
我对PostgreSQL一无所知,但在SQL中,您可以将其放入临时表中,然后对临时表进行排序
SELECT orden.id
, array_to_string(array_agg(observaciones.fecha_hora),'<br>') as observaciones
INTO #orden
FROM orden
LEFT JOIN observacion observaciones
ON observaciones.orden_id = orden.id
GROUP BY orden.id
SELECT id
, observaciones
FROM #orden
ORDER BY observaciones
DROP TABLE #orden
如果只想按日期说明对结果行排序,只需添加按字段说明排序:
SELECT orden.id,
array_to_string(array_agg(observaciones.fecha_hora),'<br>') as observaciones
FROM orden
LEFT JOIN observacion observaciones ON observaciones.orden_id = orden.id
GROUP BY orden.id
ORDER BY observaciones.fecha_hora DESC
如果只想按日期说明对结果行排序,只需添加按字段说明排序:
SELECT orden.id,
array_to_string(array_agg(observaciones.fecha_hora),'<br>') as observaciones
FROM orden
LEFT JOIN observacion observaciones ON observaciones.orden_id = orden.id
GROUP BY orden.id
ORDER BY observaciones.fecha_hora DESC
最后我这样做了
SELECT
orden.id,
array_to_string(array_agg(observaciones.fecha_hora),'<br>') as observaciones
FROM orden
LEFT JOIN (
SELECT orden_id, fecha_hora FROM observacion ORDER BY fecha_hora DESC
) as observaciones ON observaciones.orden_id = orden.id
GROUP BY orden.id
多亏了大家。我终于这样做了
SELECT
orden.id,
array_to_string(array_agg(observaciones.fecha_hora),'<br>') as observaciones
FROM orden
LEFT JOIN (
SELECT orden_id, fecha_hora FROM observacion ORDER BY fecha_hora DESC
) as observaciones ON observaciones.orden_id = orden.id
GROUP BY orden.id
感谢所有..查询末尾的ORDER BY date_列查询末尾的ORDER BY date_列我无法使用它,因为表观测有2.500.000行。。。我需要将时间从40分钟减少到2分钟以下。我不能使用它,因为表观测有2.500.000行。。。我需要把时间从40分钟减少到2分钟以下。也许我解释得不好。。。我只需要订购连接结果。也许我没有解释清楚。。。我只需要订购连接结果。