Como exibir resultados com intervalos de tempo, por exemplo 15 minutos?

Se eu executar este sql como abaixo:

SELECT datetime, cpuidle as 'CPUTotal' FROM tablename
where id = 1231
and datetime >= '2019-01-10 10:10'
and datetime <= '2019-01-10 15:10'

então receberei uma longa lista com intervalo de tempo a cada 2 segundos. Mas se eu quiser coletar a cada intervalo de 15 minutos, calcule pela média e exiba o resultado da seguinte forma:

|datetime         | CPUTotal|
|2019-10-10 10:25 |50       |
|2019-10-10 10:40 |70       |
|2019-10-10 10:55 |40       |
|2019-10-10 11:10 |55       |
|2019-10-10 11:25 |72       |
and so on...

Como eu posso fazer isso?

Andre71
fonte