Funciones SQL
SQL tiene funciones predefinidas para realizar ciertos cálculos con un mayor rendimiento.
AVG Devuelve el valor medio de una columna.
COUNT Devuelve el número de filas de la consulta.
FIRST Devuelve el primer valor de la consulta.
LAST Devuelve el último valor de la consulta.
MAX Devuelve el mayor valor de una columna.
MIN Devuelve el menor valor de una columna.
SUM Devuelve la suma de los valores de una columna.
GROUP BY Agrupar filas con el mismo valor de una columna.
HAVING Incluir condiciones con funciones SQL.
UCASE Convierte un valor a mayúsculas.
LCASE Convierte un valor a minúsculas.
MID Extrae caracteres de un campo de texto.
LEN Devuelve la longitud de un campo de texto.
ROUND Redondea un campo numérico a un número de decimales especificado.
NOW Devuelve la fecha y hora actuales del sistema.
FORMAT Formatea un campo según se quiera mostrar.
MUY BUENO
[Link]
Función SQL AVG
La función AVG devuelve el valor medio de una columna de tipo numérico.
Sintaxis SQL AVG:
SELECT AVG(columna) FROM tabla
Ejemplo SQL AVG:
Tabla ‘pedidos’
id pedido cliente precio
1 p1 RUIZ 100
2 p2 PEREZ 300
3 p3 GOMEZ 250
4 p4 RODRIGUEZ 490
5 p5 LOPEZ 60
Si quieres saber el valor medio del campo ‘precio’, usa la siguiente función SQL
SELECT AVG(precio)
AS preciomedio
FROM pedidos
La tabla resultante sería
preciomedio
240
Si quieres seleccionar los clientes con el precio del pedido superior al precio medio de los
pedidos.
SELECT * FROM pedidos
WHERE precio > (SELECT AVG(precio) FROM pedidos)
id pedido cliente precio
2 p2 PEREZ 300
3 p3 GOMEZ 250
4 p4 RODRIGUEZ 490
Función SQL COUNT
La función COUNT devuelve el número de filas de la consulta, es decir, el número de
registros que cumplen una determinada condición.
Los valores nulos no serán contabilizados.
Sintaxis de SQL COUNT:
SELECT COUNT(columna) FROM tabla
Para obtener el número de filas de una tabla
SELECT COUNT(*) FROM tabla
Para obtener el número de valores distintos de la columna especificada.
SELECT COUNT(DISTINCT columna) FROM tabla.
Ejemplos de SQL COUNT:
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
RUIZ 100
PEREZ 300
GOMEZ 250
1 p1
5 p5 2 p2
3 p3
4 p4
SELECT COUNT(*) FROM pedidos
Devolverá el número de filas de la tabla, es decir, 5
SELECT COUNT(*) FROM pedidos
WHERE cliente = ‘RUIZ’
Devolverá el número de filas del resultado de la consulta, es decir, 1
SELECT COUNT(*) FROM pedidos
WHERE precio > 270
Devolverá el número de filas del resultado de la consulta, es decir, 2
Función SQL FIRST
La función SQL FIRST devuelve el primer valor de la columna seleccionada.
Sintaxis SQL FIRST:
SELECT FIRST(columna) FROM table
Ejemplo SQL FIRST:
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 RUIZ 100
2 p2 PEREZ 300
3 p3 GOMEZ 250
4 p4 RODRIGUEZ 490
5 p5 LOPEZ 60
SELECT FIRST(precio) FROM pedidos
Devolverá el valor 100, que es el valor de la columan ‘precio’ de la primera fila de la tabla.
Función SQL LAST
La función SQL LAST sirve para obtener el valor de una columna de la última fila de la
selección.
Sintaxis SQL LAST:
SELECT LAST(columna) FROM table
Ejemplo SQL LAST:
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 RUIZ 100
2 p2 PEREZ 300
3 p3 GOMEZ 250
4 p4 RODRIGUEZ 490
5 p5 LOPEZ 60
SELECT LAST(precio) FROM pedidos
Devolverá el valor 60, que es el valor de la columna ‘precio’ de la última fila de la tabla.
Función SQL MAX
La función MAX sirve para obtener el mayor valor para una columna determinada.
Sintaxis SQL MAX:
SELECT MAX(columna) FROM tabla
Ejemplo SQL MAX:
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 RUIZ 100
2 p2 PEREZ 300
3 p3 GOMEZ 250
4 p4 RODRIGUEZ 490
5 p5 LOPEZ 60
SELECT MAX(precio) FROM pedidos
Devolverá el valor 490, que es máximo valor de la columna ‘precio’ de la consulta.
Función SQL MIN
La función MIN sirve para obtener el valor más pequeño para una columna determinada.
Sintaxis SQL MIN:
SELECT MIN(columna) FROM tabla
Ejemplo SQL MIN:
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 RUIZ 100
2 p2 PEREZ 300
3 p3 GOMEZ 250
4 p4 RODRIGUEZ 490
5 p5 LOPEZ 60
SELECT MIN(precio) FROM pedidos
Devolverá el valor 60, que es valor más pequeño de la columna ‘precio’ de la consulta.
Función SQL SUM
La función SUM permite obtener la suma total de los valores de una columna de tipo
numérico.
Sintaxis SQL SUM
SELECT SUM(columna) FROM tabla
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 RUIZ 100
2 p2 PEREZ 300
3 p3 GOMEZ 250
4 p4 RODRIGUEZ 490
5 p5 LOPEZ 60
SELECT SUM(precio) FROM pedidos
Devolverá el valor 1200, que es la suma de todos los valores de la columna ‘precio’ de la
consulta realizada, en este caso, de toda la tabla.
FUNCION SQL GROUP BY
La función GROUP BY se utiliza para juntar filas de resultados que coincidan en el valor
de alguna columna seleccionada.
Sintaxis GROUP BY
SELECT columna, funcion(columna)
FROM tabla
GROUP BY columna
Ejemplo de uso de GROUP BY
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 RUIZ 100
2 p2 PEREZ 300
3 p3 GOMEZ 250
4 p4 RUIZ 490
5 p5 GOMEZ 60
SELECT cliente, SUM(precio)
FROM pedidos
GROUP BY cliente
El resultado será el siguiente:
cliente SUM(precio)
RUIZ 590
PEREZ 300
GOMEZ 310
El cliente ‘RUIZ’ se repite 2 veces, se suman sus valores para la columna ‘precio’ 490 +
100 = 590
El cliente ‘PEREZ’ se queda igual, con el valor para ‘precio’ de 300.
El cliente ‘GOMEZ’ se repite 2 veces, y se suman sus valores para la columna ‘precio’ 250
+ 60 = 310
Nota: Se puede agrupar también por varias columnas.
GROUP BY columna1, columna2
FUNCION SQL HAVING
La función HAVING se utiliza para incluir condiciones con alguna función SQL del tipo
SUM, MAX, ..
Como la cláusula WHERE no se puede utilizar con funciones SQL del tipo SUM, MAX,
entonces utilizamos en su lugar, HAVING.
Sintaxis HAVING
SELECT columna1, SUM(columna2)
FROM tabla
GROUP BY columna1
HAVING SUM(columna2) < número
Ejemplo de SQL HAVING
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 RUIZ 100
2 p2 PEREZ 300
3 p3 GOMEZ 250
4 p4 RUIZ 490
5 p5 GOMEZ 60
SELECT cliente, SUM(precio)
FROM pedidos
GROUP BY cliente
HAVING SUM(precio) > 500
El resultado sera:
cliente SUM(precio)
RUIZ 590
Solamente el cliente ‘RUIZ’ suma en sus valores para ‘precio’ 490 + 100 = 590 un valor
superior a 500
El cliente ‘GOMEZ’ suma en sus valores para la columna ‘precio’ 250 + 60 = 310, que
también es menor de 500, y por tanto, no aparece en la tabla resultante.
El cliente ‘PEREZ’ obtiene un valor de 300, y tampoco aparece en la tabla, porque es
menor de 500.
Función SQL UCASE
La función UCASE sirve para convertir a mayúsculas el valor de una columna.
Sintaxis SQL UCASE
SELECT UCASE(columna)
FROM tabla
Ejemplo SQL UCASE:
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 Ruiz 100
2 p2 Perez 300
3 p3 Gomez 250
SELECT UCASE(cliente)
FROM pedidos
El resultado sera:
cliente
RUIZ
PEREZ
GOMEZ
Función SQL LCASE
La función LCASE sirve para convertir a minúsculas el valor de una columna.
Sintaxis SQL LCASE
SELECT LCASE (columna) FROM tabla
Ejemplo SQL LCASE:
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 Ruiz 100
2 p2 Perez 300
3 p3 Gomez 250
SELECT LCASE (cliente) FROM pedidos
El resultado sera:
cliente
ruiz
perez
gomez
Función SQL MID
La función MID se utiliza para extraer caracteres de un campo de texto
Sintaxis SQL MID
SELECT MID(columna, inicio, longitud)
FROM tabla
‘columna’ es la columna donde se quiere extraer datos de su valor.
‘inicio’ es la posición desde la que empezar a extraer.
‘longitud’ es el número de caracteres a extraer. En caso de no especificarlo, cogerá hasta el
final del campo de texto.
Ejemplo de SQL MID:
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 Ruiz 100
2 p2 Perez 300
3 p3 Gomez 250
Si queremos extraer los primeros 3 caracteres de los valores de la columna ‘cliente’:
SELECT MID(cliente,1,3) FROM pedidos
El resultados será:
cliente
Rui
Per
Gom
Función SQL LEN
La función LEN sirve para calcular la longitud del valor de un campo de texto.
Sintaxis SQL LEN
SELECT LEN(columna) FROM tabla
Ejemplo SQL LEN
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 Ruiz 100
2 p2 Perez 300
3 p3 Rodriguez 250
Si queremos saber la longitud de cada valor de la columna ‘cliente’:
SELECT LEN(cliente) AS cliente FROM pedidos
cliente
9
Función SQL ROUND
La función ROUND se utiliza para redondear un campo numérico en un número de
decimales especificado.
Sintaxis SQL ROUND
SELECT ROUND(columna, decimales) FROM tabla
Ejemplo SQL ROUND
Dada la siguiente tabla ‘pedidos’
id pedido cliente precio
1 p1 Ruiz 100.25
2 p2 Perez 305.57
3 p3 Rodriguez 250.84
Si queremos los precios de los pedidos sin números decimales, ejecutaremos:
SELECT ROUND(precio,0) AS rprecio
FROM pedidos
El resultado sera:
rprecio
100
306
251
Función SQL NOW
La función NOW devuelve la fecha y hora actuales.
Sintaxis SQL NOW
SELECT NOW() FROM table
Ejemplo SQL NOW
Dada la siguiente tabla ‘productos’
id producto precio
1 ordenador 1200.25
2 impresora 65.57
3 teclado 10.84
Si queremos saber los precios de los productos a fecha de hoy
SELECT producto, precio, NOW() AS fecha
FROM productos
El resultado será:
producto precio fecha
ordenador 900.25 10/2/2012 10:15:42 AM
impresora 65.57 10/2/2012 10:15:42 AM
teclado 10.84 10/2/2012 10:15:42 AM
Función SQL FORMAT
La función FORMAT se utiliza para especificar como se mostrará un campo en el resultado
de la consulta.
Sintaxis SQL FORMAT
SELECT FORMAT(columna, formato) FROM tabla
Ejemplo SQL FORMAT
Dada la siguiente tabla ‘productos’
id producto precio
1 ordenador 1200.25
2 impresora 65.57
3 teclado 10.84
Si queremos saber los precios de los productos a fecha de hoy, pero queremos que la fecha
tenga el formato ‘YYYY-MM-DD’, es decir, 4 caracteres para el año, guión, 2 caracteres
para el mes, guión y 2 caracteres para el día.
SELECT producto, precio,
FORMAT(NOW(), ‘YYYY-MM-DD’)
AS fecha
FROM productos
El resultado será:
producto precio fecha
ordenador 900.25 2012-02-10
impresora 65.57 2012-02-10
teclado 10.84 2012-02-10