Sql 在数据库中选择不精确项

Sql 在数据库中选择不精确项,sql,Sql,我有一个关于高中足球比赛分数的小数据库,用户可以在其中输入分数 我需要找出哪些分数报告可能不准确或不一致,哪些分数自上次分数发布以来有所下降 鉴于数据,我对如何做到这一点有点困惑: 分数表 create table FINAL_score ( scoreID varchar2(10) primary key, gameID varchar2(5) REFERENCES FINAL_game(gameID), userID varchar2(5) REFERENCES FI

我有一个关于高中足球比赛分数的小数据库,用户可以在其中输入分数

我需要找出哪些分数报告可能不准确或不一致,哪些分数自上次分数发布以来有所下降

鉴于数据,我对如何做到这一点有点困惑:

分数表

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);
^第7条插入语句是不一致的

到目前为止,我已经:

select *
from FINAL_score
order by hscore, ascore, curtime;
它命令他们


我只需要删除scoreID 6,以下是一种方法,您可以获得所有低于游戏中早期分数的分数:

select fs.*
from Final_Score fs
where fs.hscore < (select max(fs.hscore) from Final_Score fs2 where fs2.gameid = fs.gameid and and fs2.qtr <= f22.qtr fs2.timestamp < fs.timestamp)

然后,对ascore重复同样的操作。

您只是问如何删除scoreID为s006的行吗?还是比这更复杂?您正在使用哪些RDBMS,一些Oracle、Postgres、SQL Server等都有特定的功能可以帮助您。其他人不这样做,所以重要的是要知道你在使用哪一个,以便得到最好的答案。另外,我认为您的意思是需要删除ScoreID7?您可以要求列中的最大值,至少在Sqlite中是这样