Możesz grupować prawie wszystko, co chcesz. Jeśli możesz umieścić coś w kolumnie, aby pokazać, czego chcesz, możesz to pogrupować. Tak więc tylko przez dwa okresy możesz po prostu pogrupować według jednego:
SELECT * FROM table
GROUP BY if(stamp between "2005-07-01" and "2006-02-01", 0, 1)
Jeśli chcesz, aby okresy obejmowały dłuższe okresy (wiele lat), możesz użyć period_diff, aby rozróżnić:
SELECT * FROM table
GROUP BY floor(period_diff( DATE_FORMAT(stamp, "%Y%m"), "200507") / 6)
Daje ci liczbę 6-miesięcznych bloków, które upłynęły między twoją datą a okresem początkowym, w formacie rok-miesiąc.