From: M.P.Dankoor <m.p.dankoor@gmail.com>
To: pgsql-sql@postgresql.org
Subject: Re: sub-limiting a query
Date: Sat, 17 Feb 2007 19:21:40 +0100
Message-ID: <45D747B4.5050900@gmail.com> (raw)
In-Reply-To: <20070217125634.GA20589@apartia.fr>
References: <20070217125634.GA20589@apartia.fr>
Louis-David Mitterrand wrote:
> Hello,
>
> I've got a table of shows with different types (movie, theater,
> ballet,etc.) and I am looking for a select that can return the 10 last
> entered shows AND at most 2 of each type. Is that possible in one query?
>
> The table looks basically like:
>
> created_on | timestamp without time zone
> show_name | text
> id_show | integer
> show_type | text
> id_show_subtype | integer
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>
>
I thought of another solution, actually it's of those top n query tricks
that I picked up somewhere, can't remember
where.
Assuming that your table is called shows, the following query should
give you the results you want (hope so)
SELECT *
FROM shows a
WHERE 3 > (SELECT COUNT(*)
FROM shows b
WHERE b.created_on >= a.created_on
and a.show_type = b.show_type)
Mario
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: m.p.dankoor@gmail.com
Subject: Re: sub-limiting a query
In-Reply-To: <45D747B4.5050900@gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox