sql >> Databasteknik >  >> RDS >> Oracle

sql - oracle - väljer den första och sista posten för specifik grupp/sku

Du kan använda FIRST/LAST aggregerade funktioner för att förenkla denna typ av fråga.

SQL Fiddle

Fråga :

select
        sku,
        max(price) keep (dense_rank first order by purchase_date) first_purchase_price,
        max(price) keep (dense_rank last order by purchase_date) last_purchase_price
from
        store
group by
        sku;

Resultat :

|    SKU | FIRST_PURCHASE_PRICE | LAST_PURCHASE_PRICE |
|--------|----------------------|---------------------|
|  BC123 |                 3.09 |                6.68 |
|  QERT1 |                 9.09 |               13.23 |
| QQQ789 |                 4.01 |                4.01 |
|  WW000 |               200.01 |              200.01 |
|  YZV11 |               230.23 |                6.68 |


  1. Beställt antal på varandra följande upprepningar / dubbletter

  2. Skapa index för grupp efter fält?

  3. Använder PHP &MySQL för att fylla i rullgardinsmenyn

  4. Kan inte ansluta till den lokala MySQL-servern via sockeln '/var/run/mysqld/mysqld.sock' i Ubuntu 12.04.5 LTS