Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 连接结果的顺序_Postgresql_Join - Fatal编程技术网

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分钟以下。也许我解释得不好。。。我只需要订购连接结果。也许我没有解释清楚。。。我只需要订购连接结果。