Re: select top_countries and for each country, select top_cities in that country, in 1 query

From: Dorian Hoxha <dorian(dot)hoxha(at)gmail(dot)com>
To: John McKown <john(dot)archie(dot)mckown(at)gmail(dot)com>
Cc: PostgreSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Re: select top_countries and for each country, select top_cities in that country, in 1 query
Date: 2014-08-28 13:26:35
Message-ID: CANsFX05Wni=_s8ZDGbHBr8id6wFKwm8mpytDYN7RuqfVOJUSUQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thanks John.

On Thu, Aug 28, 2014 at 2:35 PM, John McKown <john(dot)archie(dot)mckown(at)gmail(dot)com>
wrote:

> On Mon, Aug 18, 2014 at 10:52 AM, John McKown
> <john(dot)archie(dot)mckown(at)gmail(dot)com> wrote:
> >
> > SELECT avg(b.countcountry)::int as "CountryCount", b.country, a.city,
> > count(a.city) as "CityCount"
> > FROM t AS a
> > INNER JOIN
> > (SELECT COUNT(country) AS countcountry, country FROM t GROUP BY country)
> AS
> > b
> > ON a.country = b.country
> > GROUP BY b.country, a.city
> > ORDER BY 1 DESC,4 DESC;
> >
>
> I am curious that nobody pointed out that the above might work but is
> really poor code. Given that, I wonder what the people here think of
> the following code. It seems "better" to me, even if it is more wordy.
>
> WITH CountryCount AS (
> SELECT COUNT(country) as "countryCount",
> country
> FROM t
> GROUP BY country
> ),
> CityCount AS (
> SELECT COUNT(city) as "cityCount",
> city,
> country
> FROM t
> GROUP BY country, city
> )
> SELECT b."countryCount",
> b.country,
> a.city,
> a."cityCount"
> FROM CityCount as a
> INNER JOIN
> CountryCount AS b
> ON a.country = b.country
> ORDER BY b.countcountry DESC,
> a.city DESC
>
>
> --
> There is nothing more pleasant than traveling and meeting new people!
> Genghis Khan
>
> Maranatha! <><
> John McKown
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Devrim Gündüz 2014-08-28 14:04:09 Re: Help related to Postgresql for RHEL 6.5
Previous Message John McKown 2014-08-28 12:35:43 Re: select top_countries and for each country, select top_cities in that country, in 1 query