Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: juanxo12 en 31 Julio 2018, 16:21 pm



Título: consula sql ayuda
Publicado por: juanxo12 en 31 Julio 2018, 16:21 pm
Hola quisiera saber como extraer la fila completa de la linea que cumpla esta condicion
Código
  1. SELECT MIN(linea) FROM tabla WHERE tipo ='b' GROUP BY (id)
en otras palabras
la fila que contenga la linea mas pequeña que sea del tipo 'b' de cada id
¿alguien que pueda echarme una mano?
¿Son necesarios cursores?
la base de datos es postgresql
tabla
Código
  1. ----------------------------------
  2. id      tipo      linea    nombre
  3. ----------------------------------
  4. 1       a          2         juan
  5.  
  6. 2       b          1         pepe
  7.  
  8. 2       b          4        pepito
  9.  
  10. 3       a          2       pepote
  11.  



Título: Re: consula sql ayuda
Publicado por: Carloswaldo en 1 Agosto 2018, 22:41 pm
Espero haber entendido bien:

Código
  1. postgres=# SELECT DISTINCT ON (id) * FROM test WHERE tipo = 'b' ORDER BY id, linea;
  2. id | tipo | linea | nombre
  3. ----+------+-------+--------
  4.  2 | b    |     1 | pepe
  5. (1 ROW)