pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Oliveiros d'Azevedo Cristina <oliveiros.cristina@marktest.pt>
To: Aaron Burnett <aburnett@bzzagent.com>
To: pgsql-sql@postgresql.org
Subject: Re: Some insight on the proper SQL would be appreciated
Date: Tue, 8 Jun 2010 18:55:16 +0100
Message-ID: <5A26680090474464864AB994E586F8DF@marktestcr.marktest.pt> (raw)
References: <C833F069.197BE%aburnett@bzzagent.com>

Howdy, Aaron,

For me this is not an easy question, specially when I don't have your data 
here on my PC to test.

But as a first approach, try this query. It is designed to give you the 
oldest 5 entries.
But, be aware that this is non-tested code. Be prepared for it to not work 
or even to contain sintax errors.

Just tell me the results and we'll continue from there

Best,
Oliver

SELECT a.username,a.firstname,a.lastname,a.signedup
FROM t_YourTable a
JOIN t_YourTable b
ON a.username = b.username
AND a.firstname = b.firstname
AND a.lastname = b.lastname
AND a.signedup >= b.signedup
GROUP BY a.username,a.firstname,a.lastname,a.signedup
HAVING COUNT(b.*) <= 5;

----- Original Message ----- 
From: "Aaron Burnett" <aburnett@bzzagent.com>
To: <pgsql-sql@postgresql.org>
Sent: Tuesday, June 08, 2010 6:04 PM
Subject: [SQL] Some insight on the proper SQL would be appreciated


>
> Greetings,
>
> Any help on this would be appreciated.
>
> I have a table which is a list of users who entered a contest. They can
> enter as many times as they want, but only 5 will count. So some users 
> have
> one entry, some have as many as 15.
>
> How could I distill this down further to give me a list that shows each
> entry per user up to five entries per user? In other words, I need a
> separate line item for each entry from each user up to the maximum of 5 
> rows
> per user.
>
> Table looks like this:
>              username               | firstname |  lastname   |  signedup
> --------------------------------------+-----------+-------------+-----------
> -
> ffc4bd0a-ccff-4203-a03c-4bd6b8c23a03 | Jean      | Mathews     | 
> 2010-03-13
> ffc4bd0a-ccff-4203-a03c-4bd6b8c23a03 | Jean      | Mathews     | 
> 2010-05-07
> ffc4bd0a-ccff-4203-a03c-4bd6b8c23a03 | Jean      | Mathews     | 
> 2010-06-06
> ff8720d4-f808-4ee6-90e6-649872fdfa55 | Janis     | Bunch       | 
> 2010-03-12
> ff48d89b-6afe-4ba0-8539-9683bec62c89 | Sandy     | Yashnyk     | 
> 2010-04-25
> ff48d2a4-0637-4e46-9461-3dd0dc0d4d83 | Kendra    | Elliott     | 
> 2010-05-09
> ff3a2a14-2575-44d5-b40b-3780f4d2506a | Kay       | Maher       | 
> 2010-04-20
> fef7625b-d1e1-4c1a-bc82-d35a4a6db16d | Carolyn   | Woodul      | 
> 2010-04-05
> fef21bbb-07a0-4c84-8708-4dc41b8b770b | Laurie    | Montijo     | 
> 2010-04-03
> feee6473-af4d-4e70-b20c-a74ba08c000f | Geneva    | Anderson    | 
> 2010-04-03
> feb690fc-0afb-4e87-b0d1-bdb2c4603fd1 | Judith    | Astroff     | 
> 2010-06-05
> fea0f9a6-e89f-4dbd-b3fd-83efed27221f | Jennifer  | Lavigne     | 
> 2010-02-09
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-03-20
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-03-27
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-04-03
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-04-10
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-04-17
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-04-25
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-05-01
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-05-08
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-05-16
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-05-22
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-05-30
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-06-06
> fe825a6d-6820-4282-b8e9-2e3cb9f660e8 | Susan     | Stowe       | 
> 2010-03-12
> fe825a6d-6820-4282-b8e9-2e3cb9f660e8 | Susan     | Stowe       | 
> 2010-03-15
>
> But in John Smith's case where he has more than 5 entries, I would like
> query results to limit him to just 5 entries to look like this:
>
>              username               | firstname |  lastname   |  signedup
> --------------------------------------+-----------+-------------+-----------
> -
> ffc4bd0a-ccff-4203-a03c-4bd6b8c23a03 | Jean      | Mathews     | 
> 2010-03-13
> ffc4bd0a-ccff-4203-a03c-4bd6b8c23a03 | Jean      | Mathews     | 
> 2010-05-07
> ffc4bd0a-ccff-4203-a03c-4bd6b8c23a03 | Jean      | Mathews     | 
> 2010-06-06
> ff8720d4-f808-4ee6-90e6-649872fdfa55 | Janis     | Bunch       | 
> 2010-03-12
> ff48d89b-6afe-4ba0-8539-9683bec62c89 | Sandy     | Yashnyk     | 
> 2010-04-25
> ff48d2a4-0637-4e46-9461-3dd0dc0d4d83 | Kendra    | Elliott     | 
> 2010-05-09
> ff3a2a14-2575-44d5-b40b-3780f4d2506a | Kay       | Maher       | 
> 2010-04-20
> fef7625b-d1e1-4c1a-bc82-d35a4a6db16d | Carolyn   | Woodul      | 
> 2010-04-05
> fef21bbb-07a0-4c84-8708-4dc41b8b770b | Laurie    | Montijo     | 
> 2010-04-03
> feee6473-af4d-4e70-b20c-a74ba08c000f | Geneva    | Anderson    | 
> 2010-04-03
> feb690fc-0afb-4e87-b0d1-bdb2c4603fd1 | Judith    | Astroff     | 
> 2010-06-05
> fea0f9a6-e89f-4dbd-b3fd-83efed27221f | Jennifer  | Lavigne     | 
> 2010-02-09
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-03-20
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-03-27
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-04-03
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-04-10
> fea0334e-4ae1-4599-b24d-9a5d8ce4fd37 | John      | Smith       | 
> 2010-04-17
> fe825a6d-6820-4282-b8e9-2e3cb9f660e8 | Susan     | Stowe       | 
> 2010-03-12
> fe825a6d-6820-4282-b8e9-2e3cb9f660e8 | Susan     | Stowe       | 
> 2010-03-15
>
> The username is unique for each user.
>
> pg version 8.25 on RHEL
>
> Any help in this would be greatly appreciated.
>
> Thank you.
>
>
> -- 
> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql 




view thread (5+ messages)  latest in thread

Message-ID: <5A26680090474464864AB994E586F8DF@marktestcr.marktest.pt>
Permalink:  ../5A26680090474464864AB994E586F8DF@marktestcr.marktest.pt/
Also on:    postgresql.org/message-id/5A26680090474464864AB994E586F8DF@marktestcr.marktest.pt

 · 

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: oliveiros.cristina@marktest.pt, aburnett@bzzagent.com
  Subject: Re: Some insight on the proper SQL would be appreciated
  In-Reply-To: <5A26680090474464864AB994E586F8DF@marktestcr.marktest.pt>

* 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