Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

180
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!