es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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
Tags:  , ,

Answer

  1. Avatar for 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:

    SELECT *
    FROM table_name
    ORDER BY 
      CASE 
        WHEN column1 = column2 THEN column3 
        ELSE column1 
      END, column2
    

    En el ejemplo dado, la consulta SQL sería:

    SELECT *
    FROM table_name
    ORDER BY 
      CASE 
        WHEN total_score = mcq_score THEN mcq_score 
        ELSE total_score 
      END, total_score
    

    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:

    id total_score mcq_score
    2 50 40
    1 50 30
    3 50 20

Comments are closed.