pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
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



view thread (6+ messages)  latest in thread

Message-ID: <45D747B4.5050900@gmail.com>
Permalink:  ../45D747B4.5050900@gmail.com/
Also on:    postgresql.org/message-id/45D747B4.5050900@gmail.com

 · 

reply

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