Let's suppose we have two tables in PostgreSQL:
Table "citizens"
country_ref   citizen_name    entry_date
-----------------------------------------------------
0             peter           2013-01-14 21:00:00.000
1             fernando        2013-01-14 20:00:00.000
0             robert          2013-01-14 19:00:00.000
3             albert          2013-01-14 18:00:00.000
2             esther          2013-01-14 17:00:00.000
1             juan            2013-01-14 16:00:00.000
3             egbert          2013-01-14 15:00:00.000
1             francisco       2013-01-14 14:00:00.000
3             adolph          2013-01-14 13:00:00.000
2             emilie          2013-01-14 12:00:00.000
2             jacques         2013-01-14 11:00:00.000
0             david           2013-01-14 10:00:00.000
Table "countries"
country_id     country_name   country_group
-------------------------------------------
0              england        0
1              spain          0 
2              france         1
3              germany        1
Now I want to obtain the last entered citizen on the "citizens" table for each country of a given country_group.
My best try so far is this query (Let's call it Query_1) :
SELECT country_ref, MAX(entry_date) FROM citizens 
LEFT JOIN countries ON country_id = country_ref 
WHERE country_group = 1 GROUP BY country_ref
Output:
country_ref   max
---------------------------------
3             2013-01-14 18:00:00
2             2013-01-14 17:00:00
So then I could do:
SELECT citizen_name FROM citizens WHERE (country_ref, entry_date) IN (Query_1)
... which will give me the output I'm looking for: albert and esther.
But I'd prefer to achieve this in a single query. I wonder if it's possible?
 
     
    