TSQL, ayuda con pequeñas consultas sobre la edad del usuario

Tengo una tabla con usuarios registrados, en la cual guardo el año como valores varchar simplemente porque tomo solo un año. Quiero crear un gráfico circular con las edades para mostrar qué usuarios tienen más probabilidades de registrarse.

La consulta a continuación me da el recuento de las edades de los usuarios que aparecen más de 5 veces en la tabla para evitar pequeños resultados. Si bien estos pequeños resultados, debajo de "tener Ount (ID de usuario)> 5" quiero aparecer como otros. ¿Qué debería agregar a esta consulta o posiblemente networkingiseñarla? Puedo crear soluciones tontas como tomar todos los años que aparecen en la consulta inicial y luego seleccionar todos, además de esos años, pero debe haber una forma mejor y más creativa de escribir esta consulta.

Entonces el resultado será algo así 1 10 1990 2 4 1980 3 10 otros

select count(userID) ageCount,userBirthYear from Users group by userBirthYear having count(userID)>5 order by count(userID) desc 

Gracias

Aquí hay una forma (suponiendo SQL2005 o posterior).

 With Ages As ( select count(userID) ageCount,userBirthYear from Users group by userBirthYear ) SELECT ageCount,userBirthYear FROM Ages WHERE ageCount>5 UNION ALL SELECT sum(ageCount) ,'others' As userBirthYear FROM Ages WHERE ageCount<=5 

Aquí hay una solución de reagrupación (sin unión) para evitar IO repetida.

La idea básica es que desee que cada logging contribuya al resultado, por lo que no debe haber cláusulas WHERE o HAVING.

 SELECT SUM(sub.ageCount) as ageCount, sub.userBirthYear FROM ( SELECT Count(userId) ageCount, CASE WHEN COUNT(userID) > 5) THEN userBirthYear ELSE 'Other' END as userBirthYear FROM Users GROUP BY userBirthYear ) as sub GROUP BY sub.userBirthYear 
 select count(userID) ageCount,userBirthYear from Users group by userBirthYear having count(userID)>5 union SELECT SUM(agecount), 'Others' FROM (select count(userID) ageCount,'Others' userBirthYear from Users group by userBirthYear having count(userID)<5)TMP order by count(userID) desc