Re: Usando GROUP BY

From: "Raul Andres Duque" <ra_duque(at)yahoo(dot)com(dot)mx>
To: "Emiliano Moscato" <moski666(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Usando GROUP BY
Date: 2009-03-04 21:13:51
Message-ID: 74DD95D4A9EA4143A8C07D28DE1DB508@amadeus.net.co
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

>
>----- Original Message -----
>From: "Emiliano Moscato" <moski666(at)gmail(dot)com>
>To: <pgsql-es-ayuda(at)postgresql(dot)org>
>Sent: Wednesday, March 04, 2009 2:31 PM
>Subject: [pgsql-es-ayuda] Usando GROUP BY
>

>Hola a todos!
>
>Cada tanto me encuentro con el mismo tipo de problema haciendo queries
>en postgres. Supongamos que tenemos el ejemplo del tutorial de
>Postgres (http://www.postgresql.org/docs/8.1/static/tutorial-agg.html):
>
>SELECT city, max(temp_lo)
> FROM weather
> GROUP BY city;
>
> city | max
>---------------+-----
> Hayward | 37
> San Francisco | 46
>(2 rows)
>
>pero además querría saber en que fecha ocurrió dicha temperatura. Cuál
>sería la manera "más correcta" de hacerlo?
>

Lo más sencillo sería utilizar un select distinct on.
http://www.postgresql.org/docs/8.3/static/queries-select-lists.html

Sería algo así como:

SELECT DISTINCT ON (city) city, temp_lo, date
FROM weather
ORDER BY temp_lo

De seguro esta es la forma más sencilla de hacerlo, tocaría evaluar si es
más o menos óptimo que utilizar joins con la misma tabla.

Atentamente,

RAUL DUQUE
Bogotá, Colombia

>En mis tiempos de Mysql hacía algo del estilo, haciendo uso de los
>abusos del standard por parte de MYSQL:
>
>SELECT city, max(temp_lo), date
> FROM weather
> GROUP BY city;
>
>pero en Postgres,si hago esto, me reclama que date no debe estar en el
>group by. Claramente, esto no sería útil, dado que al ponerlo en el
>group by, me desagrega la maxima temperatura de la ciudad por dias.
>
>Cuál sería la manera correcta de hacer este query?
>
>Gracias por adelantado, saludos
>
>Moski

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Agustin Ignacio Genoves 2009-03-04 23:46:17 Re: PL/pgsql
Previous Message Jaime Casanova 2009-03-04 21:03:29 Re: Usando GROUP BY