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
Obtenga las últimas 5 filas por atributo, postgres

Tengo una tabla de eventos asociada con los usuarios. Me gustaría saber si es posible escribir una consulta sql, para seleccionar el usuario que crea el evento, y los últimos 3 eventos tenían el estado 'cancelado'.

no contar () donde estado = 'cancelado', solo donde las últimas 3 filas tenían estado cancelado

 Select u.* from users AS u Right Join events as e ON e.user_id = u.id WHERE {last 3 rows have e.status = 'canceled'} Order by e.created_at Group by u.id

Tabla de EVENTOS:

 user_id, status, created_at 1, 'canceled', 2017-04-21 1, 'finished', 2017-04-20 1, 'finished', 2017-04-19 1, 'canceled', 2017-04-18 1, 'canceled', 2017-04-17 2, 'canceled', 2017-04-21 2, 'canceled', 2017-04-20 2, 'canceled', 2017-04-19 2, 'finished', 2017-04-18 2, 'finished', 2017-04-17
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede obtener la lista de usuarios usando funciones de ventana. Aquí hay un método:

 select e.user_id from (select e.*, row_number() over (partition by e.user_id order by created_at desc) as seqnum from event e ) e where seqnum <= 3 and e.status = 'canceled' group by e.user_id having count(*) = 3;

La consulta enumera los eventos desde el final y luego cuenta el número que se cancela.

Puede obtener información adicional del usuario uniéndose nuevamente a users (o usando in o exists ).

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!