Supongamos la siguiente tabla con 3 campos numéricos:¿Cómo puedo agrupar por columnas calculadas?
Images (table)
--------------
Width
Height
Amount
anchura y la altura son los tamaños de imagen en milímetros. Ahora quiero crear un informe sobre la cantidad de imágenes agrupadas por sus dimensiones en centímetros. Esto significa que tengo que AGRUPAR POR 2 columnas no existentes.
I puede hacer:
SELECT ROUND(Width/10,0) AS W
, ROUND(Height/10,0) AS H
, SUM(Amount) AS A
FROM IMAGES
GROUP BY Width
, Height
ORDER BY W
, H
, A
pero esto hará el mm a la conversión cm sólo en el nivel de vista y dará lugar a más de una fila para mismas dimensiones.
p. Ej.
W H A
--- --- -
150 159 2
150 160 1
no va a resultar en 1 categoría
W H A
-- -- -
15 16 3
pero en
W H A
-- -- -
15 16 2
15 16 1
El motor objetivo es en realidad una base de datos de FileMaker, que por desgracia no parece apoyar las funciones de agregado dentro del grupo Cláusula BY.
+1: O ... Reemplazar 'DE IMAGES' con' FROM (SELECT ROUND (Ancho/10,0) COMO W, REDONDO (Altura/10,0) COMO H, Cantidad DE IMÁGENES) COMO datos'. Luego puede 'SELECCIONAR W, H' y' AGRUPAR POR W, H' y 'ORDEN POR W, H' y saber que todas las referencias a' W, H' siempre se refieren a las columnas derivadas, y no tienen que repetir sus cálculos . – MatBailie
Funciona con mysql pero no con FileMaker.Parece que FileMaker no permite funciones en GROUP BY ni tablas de subconsultas :( – mselbach
@mselbach ¿Se pueden crear variables de tabla en FileMaker? ¿Qué pasa con las tablas temporales? En ese caso, puede tratarse de una operación de dos pasos en la que se crea el dividido primero los valores, luego agréguelos después – Matthew