Ciertamente, puede usar una declaración de agregación de selección según lo postulado por Ben James, sin embargo, esto dará como resultado una vista con tantas columnas como tablas. Un método alternativo puede ser el siguiente:
SELECT COUNT(user_table.id) AS TableCount,'user_table' AS TableSource FROM user_table
UNION SELECT COUNT(cat_table.id) AS TableCount,'cat_table' AS TableSource FROM cat_table
UNION SELECT COUNT(course_table.id) AS TableCount, 'course_table' AS TableSource From course_table;
Lo bueno de un enfoque como este es que puede escribir explícitamente las declaraciones de Union y generar una vista o crear una tabla temporal para contener valores que se agregan consecutivamente desde un Proc cals usando variables en lugar de los nombres de sus tablas. Tiendo a ir más con este último, pero realmente depende de las preferencias personales y la aplicación. Si está seguro de que las tablas nunca cambiarán, desea los datos en un formato de una sola fila y no agregará tablas. quédate con la solución de Ben James. De lo contrario, recomendaría flexibilidad, siempre puede piratear una estructura de tabulación cruzada.