sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo fusionar un grupo de registros en Oracle?

Usar:

  • MÁXIMO
  • AGRUPAR POR
SQL> SELECT NAME,
  2    MAX(subject_1) subject_1,
  3    MAX(marks_1) marks_1,
  4    MAX(subject_2) subject_2,
  5    MAX(marks_2) marks_2
  6  FROM t
  7  GROUP BY name;

NAME SUBJECT_1    MARKS_1 SUBJECT_2    MARKS_2
---- --------- ---------- --------- ----------
Jon  Maths             60 Science           70
Tom  Maths             90 Science           50

SQL>

En una nota al margen, debe pensar en su diseño de mesa . Solo podía tener 3 columnas, name, subject, marks .

Si desea tener columnas separadas en la misma tabla, debería tenerlos como una fila única para cada estudiante. Y cuando tenga un nuevo tema para el estudiante, entonces actualice la fila para ese estudiante, en lugar de agregar una nueva fila.