Los Clientes regularmente tienen menor capacidad de procesamiento que el Servidor, y además, siempre hay que tratar de reducir el tráfico en la red. Si solamente deseamos datos resumidos, entonces en lugar de traer los récords al Cliente para ser procesados, es más óptimo enviar un SQL SELECT con la cláusula GROUP BY para solicitar un Result Set ya totalizado en el lado del Servidor. También, podemos usar HAVING para indicar condiciones de selección a cada subtotal. Ya que ambas son condiciones de selección, WHERE y HAVING tienden a confundir. La diferencia está que WHERE es un filtro que se chequea en cada registro de la tabla, para determinar si es candidato para ser contabilizado, mientras que HAVING se aplica a los subtotales