Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/05/2016, 08:23
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
¿Como hacer esta selección en un sólo paso?

Tengo una tabla como esta:

Código SQL:
Ver original
  1. id    | id_parc_cat | sub_sup |
  2. ------+-------------+---------+
  3.  4033 |        2785 |   41336 |
  4.  4036 |        2785 |   18620 |  
  5.  4034 |        2785 |   20154 |    
  6.  4035 |        2785 |   15612 |  
  7.  4038 |        2785 |  228362 |  
  8.  4032 |        1724 |   58571 |      
  9.  4037 |        1724 |   23690 |

De esta tabla queiro que la consulta me muestre las filas con el campo sub_sup mayor para una misma id_parc_cat

Yo ahora lo resuelvo en dos pasos:
Código SQL:
Ver original
  1. SELECT id, id_parc_cat, sub_sup, MAX(sub_sup) OVER (PARTITION BY id_parc_cat) FROM cultivos;
Esto me dará esta tabla:
Código SQL:
Ver original
  1. id    | id_parc_cat | sub_sup | MAX|
  2. ------+-------------+---------+------------------------
  3.  4033 |        2785 |   41336 | 228362
  4.  4036 |        2785 |   18620 | 228362
  5.  4034 |        2785 |   20154 | 228362
  6.  4035 |        2785 |   15612 | 228362
  7.  4038 |        2785 |  228362 | 228362
  8.  4032 |        1724 |   58571 |  58571
  9.  4037 |        1724 |   23690 |  58571

Esta selección la almaceno en una vista.

Y luego selecciono los registros donde sub_sup=MAX en la vista creada.

Pero el caso es que me gustaría saber cómo se puede hacer esta operación en un sólo paso.

Saludos y gracias como siempre
__________________
Mi calculadora en Qt