Los productos cruzados de conjuntos son muy útiles para hacer combinaciones de ellos principalmente, aquí tendremos un ejemplo para una forma de tabulación.
Supongamos que tenemos los datos de un alumno y queremos desplegar sus datos de forma que nos pueda ayudar a visualizarlos mejor, para eso nos gustaría saber cuanto es el total de sus parciales pero también el porcentaje del total de cada parcial. Imaginemos los siguientes datos:
Alumno, Parcial, Total, Porcentaje
Si quisieramos sacar estos datos, una forma de hacerlo es por medio de "producto cruzado" en tablas para eso podemos hacer un conteo de los parciales, hacer producto cruzado con los datos de los parciales y por último hacer una proyección más para hacer el cálculo del porcentaje.
1 SELECT * FROM alumnos;
id | nombre | parcial
======================
1 | Balam | 6
2 | Balam | 8
3 | Balam | 9
4 | Balam | 4
5 | Balam | 7
6 | Balam | 1
1 SELECT *
2 FROM alumnos,
3 (
4 SELECT
5 SUM(parcial) AS CONTADOR
6 FROM alumnos
7 ) TOTAL;
id | nombre | parcial | contador
=================================
1 | Balam | 6 | 35
2 | Balam | 8 | 35
3 | Balam | 9 | 35
4 | Balam | 4 | 35
5 | Balam | 7 | 35
6 | Balam | 1 | 35
1 SELECT
2 *,
3 parcial/TOTAL.CONTADOR
4 FROM alumnos,
5 (
6 SELECT
7 SUM(parcial) AS CONTADOR
8 FROM alumnos
9 ) TOTAL;
id | nombre | parcial | contador | porcentaje
==============================================
1 | Balam | 6 | 35 | 0.17
2 | Balam | 8 | 35 | 0.23
3 | Balam | 9 | 35 | 0.26
4 | Balam | 4 | 35 | 0.11
5 | Balam | 7 | 35 | 0.2
6 | Balam | 1 | 35 | 0.03