Base de datos

Cuestiones y dudas acerca de lenguajes de programación diversos.

Moderador: Moderadores

Avatar de Usuario
Cao

Base de datos

Mensaje por Cao » Mar Mar 08, 2005 9:22 am

hola.tengo una base de datos en la cual tengo una tabla de valores y haciendo una consulta en sql quiero calcular los valores maximos.yo solo se calcular el maximo.lo hago de la siguiente manera:
Ej de sueldos:
select nombre
from empleado
where sueldo=(select max(sueldo) from empleado)

Avatar de Usuario
ABCdatos
Administrador foro
Mensajes: 673
Registrado: Dom Mar 03, 2002 1:00 am
Contactar:

Mensaje por ABCdatos » Mar Mar 08, 2005 10:33 pm

Para obtener el valor máximo, puedes consultar el primer registro ordenado por ese mismo campo:

SELECT sueldo FROM empleados ORDER BY sueldo DESC LIMIT 1;

O, según el motor de bases de datos:

SELECT TOP 1 sueldo FROM empleados ORDER BY sueldo DESC;

Si quieres los tres primeros:

SELECT sueldo FROM empleados ORDER BY sueldo DESC LIMIT 3;

Y si quieres los tres menores:

SELECT sueldo FROM empleados ORDER BY sueldo ASC LIMIT 3;

Para obtener también el nombre del afortunado:

SELECT nombre, sueldo FROM empleados ORDER BY sueldo DESC LIMIT 1;

Para obtener los tres mayores valores evitando que se repitan:

SELECT DISTINCT sueldo FROM empleados ORDER BY sueldo DESC LIMIT 3;

TOP o LIMIT limitan la cantidad de registros a obtener, ORDER BY ordena por un campo, ASC (por omisión) de forma ascendente, DESC de forma descendente. DISTINCT selecciona sólo valores diferentes, evitando duplicidades.

Saludos.
Equipo ABCdatos.
http://www.abcdatos.com/

Avatar de Usuario
Cao

mysql estandar

Mensaje por Cao » Mié Mar 09, 2005 9:13 am

hola.tengo una base de datos en la cual tengo una tabla de valores y haciendo una consulta en sql quiero calcular los valores maximos.yo solo se calcular el maximo.lo hago de la siguiente manera:
Ej de sueldos:
select nombre
from empleado
where sueldo=(select max(sueldo) from empleado)
Pero necesito que sea de mysql estandar.gracias por la ayuda.las respuestas que recibi son de sql de microsoft.si algien me puede ayudar se lo agradezco.gracias.

Avatar de Usuario
ABCdatos
Administrador foro
Mensajes: 673
Registrado: Dom Mar 03, 2002 1:00 am
Contactar:

Mensaje por ABCdatos » Mié Mar 09, 2005 3:37 pm

Excepto las que contienen la sentencia TOP (en mySQL se emplea LIMIT en su lugar), todas las demás pueden correr en mySQL. Partiendo de esas puedes componer las que te convengan.

Saludos.
Equipo ABCdatos.
http://www.abcdatos.com/

Responder