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.