Puoi raggruppare -quasi- tutto ciò che vuoi. Se riesci a ottenere qualcosa in una colonna per mostrare ciò che desideri, puoi raggruppare su di essa. Quindi solo per due periodi potresti semplicemente raggruppare su un se:
SELECT * FROM table
GROUP BY if(stamp between "2005-07-01" and "2006-02-01", 0, 1)
Se hai bisogno che i periodi siano più lunghi (più anni), puoi utilizzare period_diff per distinguere:
SELECT * FROM table
GROUP BY floor(period_diff( DATE_FORMAT(stamp, "%Y%m"), "200507") / 6)
Ti darà il numero di blocchi di 6 mesi trascorsi tra la tua data e il periodo di inizio nel formato anno-mese.