Thanks John.

On Thu, Aug 28, 2014 at 2:35 PM, John McKown <john.archie.mck...@gmail.com>
wrote:

> On Mon, Aug 18, 2014 at 10:52 AM, John McKown
> <john.archie.mck...@gmail.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@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

Reply via email to