Let's consider the following posts table
title | author | published_at
--------+--------+---------------------
Post 2 | Zaiste | 2015-03-02 00:00:00
Post 1 | Zaiste | 2015-02-01 00:00:00
Post 4 | Mary | 2015-03-04 00:00:00
Post 3 | John | 2015-03-02 00:00:00Our question is: What's the latest publication date of each author?; to answer
it we will use max aggregation function.
SELECT author, max(published_at)
FROM posts
GROUP BY author; author | max
--------+---------------------
Mary | 2015-03-04 00:00:00
Zaiste | 2015-03-02 00:00:00
John | 2015-03-02 00:00:00Similary to get the oldest publication date of each author we will use
min function.
SELECT author, min(published_at)
FROM posts
GROUP BY author; author | min
--------+---------------------
Mary | 2015-03-04 00:00:00
Zaiste | 2015-02-01 00:00:00
John | 2015-03-02 00:00:00To order those results we use plain ORDER BY clause with min function as its
parameter.
SELECT author, min(published_at)
FROM posts
GROUP BY author
ORDER BY min(published_at) ASC; author | min
--------+---------------------
Zaiste | 2015-02-01 00:00:00
John | 2015-03-02 00:00:00
Mary | 2015-03-04 00:00:00