From: | Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec> |
---|---|
To: | Emiliano Moscato <moski666(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Usando GROUP BY |
Date: | 2009-03-04 21:03:29 |
Message-ID: | 3073cc9b0903041303q1fc0bac3yb4e642d60c2651f0@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2009/3/4 Emiliano Moscato <moski666(at)gmail(dot)com>:
> 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?
>
en que fecha o en que "fechas"... el hecho de que haya habido una
temperatura maxima no significa que haya ocurrido una sola vez...
> 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;
>
lo cual claramente es incorrecto porque no estas definiendo que fecha
del grupo deseas obtener (es decir del grupo de veces en que en city
llego a haber temp_lo temperatura)
> pero en Postgres,si hago esto, me reclama que date no debe estar en el
> group by.
sera que te reclama que "debe" estar?
> Claramente, esto no sería útil, dado que al ponerlo en el
define "util"
> group by, me desagrega la maxima temperatura de la ciudad por dias.
>
en realidad lo agrupa por ciudad y fecha... no lo desagrega... ah!
bueno, eso es semantica!!!
> Cuál sería la manera correcta de hacer este query?
>
solo llego hasta aqui, no se me ocurre forma de filtrarlo mas... mas
que con una funcion...
SELECT city, date, temp_lo
FROM weather
WHERE (city,temp_lo) IN (SELECT city, max(temp_lo)
FROM weather
GROUP BY city)
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
From | Date | Subject | |
---|---|---|---|
Next Message | Raul Andres Duque | 2009-03-04 21:13:51 | Re: Usando GROUP BY |
Previous Message | Emiliano Moscato | 2009-03-04 19:31:20 | Usando GROUP BY |