Ejemplos de cláusula SELECT
- city [char25]
- estado [char20]
- pop [decimal(12,0)]
- hhinc [decimal(8,0)]
- area [decimal(6.1)]
- GEOLOC (Obj)
Ejemplo 1:
SELECT * FROM table
Esta consulta devuelve todos los atributos de todas las filas de la tabla. El * es un comodín que representa a todos los atributos. Spectrum Spatial expande el * en una lista de todos los atributos de la tabla en el orden en que aparecen en la tabla y delega la consulta completa al proveedor de fuente de datos. Esto se debe a la Regla 1.
Ejemplo 2:
SELECT Count(*) FROM table
Esta consulta de agregación devuelve todos los atributos de todas las filas de la tabla. Esto cumple con la Regla 5, en la cual la función de agregación se encuentra en la cláusula SELECT.
Ejemplo 3:
SELECT state, city FROM table
Esta consulta devuelve los atributos 'city' y 'state' de todas las filas de la tabla. Esta consulta se delega en su totalidad al proveedor de fuente datos debido a la Regla 2 y a la Regla 4.
Ejemplo 4:
SELECT UPPER(city) FROM table
Este ejemplo ofrece una vista previa de una consulta que solo se ha traspasado parcialmente al proveedor de fuente de datos. La Regla 6 indica que Spectrum Spatial no puede delegar operadores o funciones a un proveedor de fuente de datos. Esto significa que Spectrum Spatial debe ejecutar la función UPPER. Para hacerlo, necesita el atributo 'city' de la 'tabla' y construir la consulta siguiente para delegar al proveedor de datos:
SELECT city FROM table
Spectrum Spatial ejecuta la siguiente consulta frente a los resultados de la consulta del proveedor de datos:
SELECT UPPER(city) FROM <results of the delegation>
Ejemplo 5:
SELECT city, pop/area AS proportion FROM table
En este ejemplo, el usuario desea que "pop" se encuentre dividido por el "área" y la "ciudad" devuelta. La Regla 6 no permite que "/" se delegue. Spectrum Spatial también aprovecha la Regla 1 para obtener los atributos necesarios para satisfacer la consulta y construye la siguiente para delegar al proveedor de datos:
SELECT city, pop, area FROM table
Spectrum Spatial ejecuta la siguiente consulta frente a los resultados de la consulta del proveedor de datos. Los resultados se devuelven con el uso de un alias. Si el alias no se proporcionó en la consulta original, los resultados tendrán un nombre poco agradable generado por computadora.SELECT city, pop/area AS proportion FROM <results of the delegation>
Ejemplo 6:SELECT city, avg(hhinc) FROM table WHERE state='ny' GROUP BY city ORDER BY city
Esta consulta devuelve el atributo "city" (ciudad) para el ingreso promedio en el hogar (hhinc). Esta consulta se delega en su totalidad al proveedor de datos debido a la Regla 2, Regla 3 y Regla 5
Ejemplo 7:SELECT city, avg(hhinc) FROM table WHERE pop => 50000 GROUP BY city ORDER BY city
En este ejemplo, el proveedor de fuentes de datos admite la función avg(), pero no admite el operador => en la cláusula WHERE. La consulta en la cual interviene el proveedor de fuentes de datos es:
SELECT city, hhinc FROM table
Y Spectrum Spatial actuaría en esta:
select city, avg(hhinc) FROM <results from the delegation> WHERE pop => 50000 GROUP BY city ORDER BY city
Ejemplo 8:SELECT city, avg(hhinc) FROM table WHERE pop => 50000 GROUP BY city ORDER BY city
En este ejemplo, el proveedor de fuentes de datos admite la función avg(), el operador => en la cláusula WHERE, pero no admite GROUP BY. La consulta en la cual interviene el proveedor de fuentes de datos es:
SELECT city, hhinc FROM table WHERE pop => 50000
Y Spectrum Spatial actuaría en esta:
select city, avg(hhinc) FROM <results from the delegation> WHERE pop => 50000 GROUP BY city ORDER BY city