| From: | "M(dot)P(dot)Dankoor" <m(dot)p(dot)dankoor(at)gmail(dot)com> |
|---|---|
| To: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: sub-limiting a query |
| Date: | 2007-02-17 18:21:40 |
| Message-ID: | 45D747B4.5050900@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Louis-David Mitterrand | 2007-02-17 18:40:00 | Re: sub-limiting a query |
| Previous Message | Andreas Kretschmer | 2007-02-17 17:47:43 | Re: sub-limiting a query |