Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

176
Vistas
ORDENAR POR con prioridad

Quiero usar ORDER BY en un ID único con prioridad. Mi tabla se ve así:

 +-------------+------------------+ | disposition | uniqueid | +-------------+------------------+ | ANSWERED | 1595409523.22546 | | NO ANSWER | 1595409523.22546 | | BUSY | 1595409523.22546 | | BUSY | 1595406475.22391 | | NO ANSWER | 1595406475.22391 | | BUSY | 1595406475.22391 | +-------------+------------------+

Quiero, por ejemplo, en el ID: 1595409523.22546 que aparezca la línea donde hay 'RESPUESTA', si no hay 'RESPUESTA', quiero que se muestre 'SIN RESPUESTA'; de lo contrario, OCUPADO, etc. El resultado debería ser:

 +-------------+------------------+--+ | disposition | uniqueid | | +-------------+------------------+--+ | ANSWERED | 1595409523.22546 | | | NO ANSWER | 1595406475.22391 | | | | | | +-------------+------------------+--+

Usted me podría ayudar ? Gracias !

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Para verificar, para cada identificación única, una lista clasificada de disposiciones y devolver la clasificación más baja encontrada, o la disposición léxicamente menor si no se encuentra ninguna de la lista clasificada:

 select if(min(find_in_set(disposition, 'ANSWERED,NO ANSWER,BUSY')),elt(min(find_in_set(disposition, 'ANSWERED,NO ANSWER,BUSY')),'ANSWERED,NO ANSWER,BUSY'),min(disposition)) disposition, uniqueid from yourtable group by uniqueid
over 4 years ago · Santiago Trujillo Denunciar

0

Si su versión de MySql es 8.0+ y admite funciones de ventana, puede usar ROW_NUMBER() :

 select t.disposition, t.uniqueid from ( select *, row_number() over (partition by uniqueid order by field(disposition, 'ANSWERED', 'NO ANSWER', 'BUSY')) rn from tablename ) t where t.rn = 1

Para versiones anteriores, puede usar la agregación condicional:

 select case 1 when max(disposition = 'ANSWERED') then 'ANSWERED' when max(disposition = 'NO ANSWER') then 'NO ANSWER' when max(disposition = 'BUSY') then 'BUSY' end disposition, uniqueid from tablename group by uniqueid

Ver la demostración .
Resultados:

 > disposition | uniqueid > :---------- | ---------------: > ANSWERED | 1595409523.22546 > NO ANSWER | 1595406475.22391
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda