2012-12-12 93 views
0

我有一個高中足球比賽比分小型數據庫,用戶可以在文本中的分數排序。選擇4組,由時間字段

我需要找到什麼最後的比分是在每季度

結束

我是如何做到這一點給出的數據有點困惑:

評分表

create table FINAL_score 

    (scoreID varchar2(10) primary key, 

    gameID varchar2(5) REFERENCES FINAL_game(gameID), 

    userID varchar2(5) REFERENCES FINAL_user(userID), 

    curtime timestamp, 

    qtr number(1), 

    hscore number(2) not null, 

    ascore number(2) not null); 


insert into FINAL_score values ('s001', 'g001', 'u001', '10-DEC-12 02:10:00', 1, 7, 3); 

insert into FINAL_score values ('s002', 'g001', 'u002', '10-DEC-12 02:12:00', 1, 7, 3); 

insert into FINAL_score values ('s003', 'g001', 'u001', '10-DEC-12 02:15:00', 1, 7, 10); 

insert into FINAL_score values ('s004', 'g001', 'u002', '10-DEC-12 02:28:00', 2, 14, 13); 

insert into FINAL_score values ('s005', 'g001', 'u001', '10-DEC-12 02:30:00', 2, 14, 16); 

insert into FINAL_score values ('s006', 'g001', 'u001', '10-DEC-12 02:55:00', 3, 14, 19); 

insert into FINAL_score values ('s007', 'g001', 'u002', '10-DEC-12 02:57:00', 3, 14, 16); 

insert into FINAL_score values ('s008', 'g001', 'u001', '10-DEC-12 03:15:00', 4, 17, 26); 

insert into FINAL_score values ('s009', 'g001', 'u002', '10-DEC-12 03:30:00', 4, 20, 29); 

我想我需要使用子查詢,但我只是不」知道如何實現它

select hscore, ascore 
from FINAL_score 
where (....) 

任何幫助將不勝感激,謝謝

+3

請顯示您的示例數據的查詢結果。 – valex

回答

0

得分實際上是通過遊戲單調遞增的(他們只是上升,而不是下降)。因此,您可以採取以下快捷方式:

select gameid, qtr, max(hscore), max(ascore) 
from final_score 
group by gameid 
+0

感謝隊友,作品完美。你是最好的 – markmilly

1

將獲得最後一個記錄發在每一場比賽,這樣做:

select hscore, ascore 
from (select * from FINAL_score 
     order by curtime desc) x 
group by gameId; 

對於一個特定的遊戲,請在此添加where子句:

select hscore, ascore 
from (select * from FINAL_score 
     where gameId = ? 
     order by curtime desc) x 
group by gameId; 

請注意,這是一個僅限於mysql的解決方案。