Posterior a consultar especialistas en este tema, programadores de deferentes áreas y profesores hemos dado con la solución a la interrogande y la dejamos plasmada en este post.
Aunque las subconsultas se colocan más comúnmente en una cláusula WHERE, también pueden formar parte de la cláusula FROM. Estas subconsultas se denominan comúnmente tablas derivadas.
Si se usa una subconsulta de esta manera, también debe usar una cláusula AS para nombrar el resultado de la subconsulta.
Ejemplos
CREATETABLE student (name CHAR(10), test CHAR(10), score TINYINT);INSERTINTO student VALUES('Chun','SQL',75),('Chun','Tuning',73),('Esben','SQL',43),('Esben','Tuning',31),('Kaolin','SQL',56),('Kaolin','Tuning',88),('Tatiana','SQL',87),('Tatiana','Tuning',83);
Suponga que, dados los datos anteriores, desea obtener el promedio total de todos los estudiantes. En otras palabras, el promedio de 148 de Chun (75+73), 74 de Esben (43+31), etc.
No puede hacer lo siguiente:
SELECTAVG(SUM(score))FROM student GROUPBY name; ERROR 1111(HY000): Invalid useofgroupfunction
Sin embargo, se permite una subconsulta en la cláusula FROM:
SELECTAVG(sq_sum)FROM(SELECTSUM(score)AS sq_sum FROM student GROUPBY name)AS t;+-------------+|AVG(sq_sum)|+-------------+|134.0000|+-------------+
El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido por adelantado. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o cualquier otra parte.
Te invitamos a añadir valor a nuestra información dando tu experiencia en las explicaciones.