Du kan gruppera på -nästan- vad du vill. Om du kan få något i en kolumn för att visa vad du vill, kan du gruppera på det. Så under bara två perioder kan du helt enkelt gruppera på ett om:
SELECT * FROM table
GROUP BY if(stamp between "2005-07-01" and "2006-02-01", 0, 1)
Om du vill att perioderna ska sträcka sig över längre tider (flera år) kan du använda period_diff för att skilja:
SELECT * FROM table
GROUP BY floor(period_diff( DATE_FORMAT(stamp, "%Y%m"), "200507") / 6)
Det ger dig antalet 6-månaders block som passerat mellan ditt datum och startperioden i år-månadsformat.