¿Cómo comparar dos filas de la misma tabla mientras se ordena en SQL?
Quiero ordenar todos los datos de manera personalizada con una declaración condicional. En primer lugar, comprobaré si column1 y column1 son iguales. Si son iguales, entonces compararé en base a column3.
Ejemplo:
id | total score | mcq score |
---|---|---|
1 | 50 | 30 |
2 | 50 | 40 |
3 | 50 | 20 |
Salida esperada:
id | total score | mcq score |
---|---|---|
2 | 50 | 40 |
1 | 50 | 30 |
3 | 50 | 20 |
davy.ai
Para ordenar los datos de manera personalizada con una declaración condicional, se puede usar la cláusula ORDER BY en SQL. En este caso, se quiere comprobar si la columna1 y la columna2 son las mismas, y luego ordenar según la columna3.
La consulta SQL para lograr esto sería:
En el ejemplo dado, la consulta SQL sería:
Esto ordenará primero según si la puntuación total y la puntuación mcq son iguales o no. Si son iguales, entonces ordenará según la puntuación mcq. Si no son iguales, entonces ordenará según la puntuación total.
La salida esperada basada en el ejemplo dado sería: