Hola Oscar:
Dado que este es tu primer post en el foro, vale la pena hacerte algunas observaciones y recomendaciones.
1. Dado que este es un foro de SQL Genérico, es importante que digas siempre en tus post's con que Motor de Base de Datos estás trabajando así como la versión/edición del mismo, ya que cada DBMS maneja una sintaxis distinta, sobre todo en el manejo de fechas.
2. Siempre postea cual es la estructura de tus tablas. Cuando pones sólo los datos, podemos deducir equivocadamente los TIPOS de cada columna. Aquí por ejemplo no nos dices de qué TIPO son tus columas de fecha y hora, además, los tipos de datos pueden variar de un DBMS a otro, así por ejemplo, MySQL tiene los tipos TIME, DATE, DATETIME para almacenar fechas mientras que otros sólo maneja el tipo DATE. Peor aun, algunos usuarios tienen la mala práctica de usar columnas tipo VARCHAR para almacenar sus fechas espero que no sea el caso)
3. Utiliza las herramientas de búsqueda como Google o la propia de este foro para ver si alguien más ya posteo un problema similar que pueda ayudarte. Sólo si de plano no encuentras nada de ayuda que te pueda servir, entonces puedes acudir al foro y abrir una nueva pregunta.
4. En tus post's siempre incluye el código que intentaste hacer por tu cuenta, no importa si está mal, o si está incompleto. El hecho es que demuestres que al menos trataste de obtener el resultado esperado. Si tu código marca algún error entonces posteas también el código de error que está marcando. Si tu código no regresa los resultados esperados entonces dinos qué es lo que te regresa y qué está mal contra el resultado esperado.
5. El post sirve para resolver dudas puntuales pero de ninguna manera esperes encontrar un código sólo para copiar y pegar. Aquí encontraras tips o ideas de lo que tienes que hacer, pero en definitiva, es tu trabajo y tendrás que hacerlo por tu cuenta.
6. Finalmente, con respecto a tu pregunta, en realidad tienes muchas formas de resolverla, la más simple creo que sería que sólo consideres la "HORA_COMPRA" a nivel de hora, no de minutos, es decir, que "TRUNQUES" los minutos:
Una vez que hagas esto, simplemente AGRUPAS por FECHA y HORA_TRUNCADA para obtener el resultado esperado.
El cómo hacer este "truncado" dependerá del DBMS con el que estés trabajando.
Haz la prueba y nos comentas. Si sigues con problemas, postea lo que intentaste hacer y con gusto te ayudamos a completar y/o corregir lo que haga falta.
Saludos
Leo.