[ Foro de SQL (y MySQL) ]

filtrado de datos

09-Feb-2021 21:21
pablo fredrikson
3 Respuestas

Buenas tardes. Tengo una tabla en mysql con los siguientes campos: id (autoincremental), pais(string), sorteo(int), numero(int).

necesito encontrar una fila con un determinado pais (este por parametro), dentro del pais encontrar el numero de sorteo más alto y dentro del sorteo el numero max... por ejemplo
tengo pais sorteo numero
        chile     1           10
        chile     1           12
       chile      2           100
       españa 1            2
       españa 1           3
si busco por chile el resultado debería ser : chile-2-100 por que el sorteo mayor es 2 y el número mayor dentro del sorteo es 100. En el caso de españa debería encontrar españa,1,3
por que dentro de españa el numero de sorteo mayor es 1 y el número mayor en número es 3. Espero ser claro. Muchas gracias


09-Feb-2021 22:03
Nacho Cabanes (+83)

Select * from tabla order by campo1, campo2


09-Feb-2021 22:30
pablo fredrikson

si observas ademas de buscar campos debo buscarlos con una condición

primero por pais (que seria un parametro) luego por el numero de sorte mayor dentro del paìs y luego por el numero mayor dentro de sorteo, en el ejemplo el resultado buscado es chile, 2, 100 y en el caso de españa serìa españa, 1 , 3


10-Feb-2021 09:47
Nacho Cabanes (+83)

Sí, y deduzco que no has mirado el apartado 1 del curso (especialmente el 1.6) ni has intentado profundizar a partir de lo que te he dicho.

https://www.aprendeaprogramar.com/cursos/verApartado.php?id=10002

Sin saber el nombre de tu table (imaginemos que sería "paises"), te basta con un "WHERE" para indicar la condición y con un "ORDER BY" al que especifiques dos campos, de modo que primero use uno de ellos como criterio y luego, en caso de coincidir en dos registros, mire el segundo. Además (si es MySQL o MariaDB) puedes usar "LIMIT" para obtener sólo el primer registro:

SELECT * FROM paises
WHERE pais = "chile"
ORDER BY sorteo DESC, numero DESC
LIMIT 1

Algún detalle, como el LIMIT, puede variar según el gestor de bases de datos concreto, que no especificas.

Pero trataba de darte una pista, en vez de hacer todo tu trabajo por ti. Espero que al menos mires el apartado 1 del tutorial.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)