熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

“每個Y的最新X”的SQL經典問題

2013-11-13 15:53:57  來源: Oracle 

  每個Y的最新X是一個經典的SQL問題工作中經常碰到當然不是按Y分組求最新的X值那麼簡單要求最新X的那條記錄或主鍵ID用一條SQL語句可以簡單的解決此問題

  生成實例表和數據

  

  創建表 CREATE TABLE dboTab ( ID int NOT NULL IDENTITY ( ) Y varchar() NOT NULL X datetime NOT NULL ) GO 插入數據 INSERT INTO Tab(Y X) values(BBB ::) INSERT INTO Tab(Y X) values(BBB ::) INSERT INTO Tab(Y X) values(BBB ::) INSERT INTO Tab(Y X) values(AAA ::) INSERT INTO Tab(Y X) values(AAA ::) INSERT INTO Tab(Y X) values(AAA ::) GO

  解決每個Y的最新X經典SQL問題

  

  一條SQL語句實現 SELECT ID Y X FROM Tab T WHERE (NOT EXISTS (SELECT FROM Tab T WHERE (TY = TY) AND (TX > TX OR TX = TX AND TID > TID)))

  在Y列在建立索引可以大大優化查詢速度


From:http://tw.wingwit.com/Article/program/Oracle/201311/17476.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.