No creo que haya mucho daño al hacer cálculos de llamadas de función en SQL, siempre que quede claro dónde se están haciendo a los usuarios de la tabla. Todo lo que ha hecho aquí es hacer un acceso directo a una subconsulta. Sin embargo, nunca hago esto con mis consultas de acceso primarias ya que las personas comienzan a "dar por hecho" este tipo de cálculos.
Si descubro que estoy haciendo esto de manera repetitiva, me parece más valioso hacer una tabla de apartamiento que contenga este tipo de información en una forma precalculada y luego usar activadores para mantenerla actualizada. Un ejemplo de esto es una base de datos en la que acumulo los datos del resumen financiero de los artículos de línea de la factura al nivel de oferta, luego al nivel de presentación (que tiene varias cotizaciones) y luego al nivel de política (que tiene múltiples árboles de múltiples portadores).
Resulta que la mayoría de las consultas realmente necesitan los datos en el nivel de la política. Mediante el uso de desencadenantes y tablas de resumen, aceleré algunas consultas críticas literalmente en dos órdenes de magnitud simplemente porque el trabajo ya estaba hecho, al tiempo que disminuía el rendimiento de un cambio guardado en una cantidad sin importancia. Entonces, si te encuentras realizando muchas consultas de resumen, piensa en una forma de evitar el trabajo ... pero para casos simples, creo que las llamadas en línea a las funciones están bien.
Bueno, yo soy un tipo DB que ahora está haciendo un trabajo OO, whatdya decir que hacer un cambio? ¿Crees que a nuestros empleadores les importará? – tnktnk
Estoy seguro de que estarás bien - La programación de OO seguramente será un día festivo en comparación con la perversidad arcaica de SQL;) – 5arx