SORU
16 AĞUSTOS 2010, PAZARTESİ


MAX ile TARAFINDAN GRUP(TARİH)

, 8**: Bir tablo (MAX kalkış saati. her bir tren için yeni hedef listesi için çalışıyorum

Train    Dest      Time
1        HK        10:00
1        SH        12:00
1        SZ        14:00
2        HK        13:00
2        SH        09:00
2        SZ        07:00

İstenilen sonucu olmalıdır:

Train    Dest      Time
1        SZ        14:00
2        HK        13:00

Kullanarak denedim

SELECT Train, Dest, MAX(Time)
FROM TrainTable
GROUP BY Train

"ora-00979 olmadığını ifade EDEREK bir GRUP" hatası 'Hedef' deyim. benim gruba dahil etmem gerektiğini söyleyen bir var tarafından Ama kesinlikle istediğim bu değil

SQL bir satır yapmak mümkün mü?

CEVAP
16 AĞUSTOS 2010, PAZARTESİ


SELECT train, dest, time FROM ( 
  SELECT train, dest, time, 
    RANK() OVER (PARTITION BY train ORDER BY time DESC) dest_rank
    FROM traintable
  ) where dest_rank = 1

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • IGN

    IGN

    19 EYLÜL 2006
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • PUSHER

    PUSHER

    11 HAZİRAN 2014