Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

175
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda