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

230
Views
Postgresql obtiene el valor más común en la matriz

Tengo una tabla con una columna con valores de matriz (después de agrupar por y la función array_agg)

 COLUMN_VALUE | other_columns... -----------: | -------: {0.45,0.45,0.97,0.99}| .. {0.45,0.45,0.85,0.99}| .. {0.45,0.45,0.77,0.99}| .. {0.45,0.45,0.10,0.99}| ..

¿Cómo obtengo el valor más frecuente? (0,45 por cada fila para este caso)

Mi suposición es deshacer el anidamiento y agrupar nuevamente, pero estoy tratando de encontrar algo más robusto y rápido.

Consulta que estoy usando para construir la tabla.

 select column1, column2, column3, array_agg(column4) as prices from tb where some conditions group by 1, 2, 3
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puede obtener el valor más frecuente durante la agregación usando el agregado mode() :

 select column1, column2, column3, array_agg(column4) as prices mode() within group (order by column4 desc) as most_frequent_price from tb where ... group by 1, 2, 3

Ejemplo en línea

over 4 years ago · Santiago Trujillo Report

0

Puede usar unnest() y alguna lógica de agregación:

 select t.*, m.mode from t cross join lateral (select el as mode from unnest(t.column_value) el group by el order by count(*) desc limit 1 ) m;

Llamé a este modo porque ese es el término estadístico para el valor más común.

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!