Du kan gruppere på -næsten- alt, hvad du vil. Hvis du kan få noget i en kolonne til at vise, hvad du vil, kan du gruppere på det. Så i kun to perioder kan du simpelthen gruppere på et hvis:
SELECT * FROM table
GROUP BY if(stamp between "2005-07-01" and "2006-02-01", 0, 1)
Hvis du har brug for, at perioderne spænder over længere tider (flere år), kan du bruge period_diff til at skelne mellem:
SELECT * FROM table
GROUP BY floor(period_diff( DATE_FORMAT(stamp, "%Y%m"), "200507") / 6)
Det vil give dig antallet af 6-måneders blokke, der er gået mellem din dato og startperioden i år-måned-format.