当前位置: 技术问答>linux和unix
SQL语句如何过滤非重复记录
来源: 互联网 发布时间:2017-05-22
本文导语: 有一数据库表student,字段为(ID,Name,Grade),该表无主键 里面有如下数据: 1 aaa 85 2 bbb 66 3 ccc 85 1 aaa 75 2 bbb 77 如何写一条SQL语句,查询出相关记录,记录要求过滤掉重复的ID号,即同一个ID号只显示一...
有一数据库表student,字段为(ID,Name,Grade),该表无主键
里面有如下数据:
1 aaa 85
2 bbb 66
3 ccc 85
1 aaa 75
2 bbb 77
如何写一条SQL语句,查询出相关记录,记录要求过滤掉重复的ID号,即同一个ID号只显示一条记录,相同ID号的记录选取分数值高的记录。
如以上记录查询后显示:
1 aaa 85
3 ccc 85
2 bbb 77
里面有如下数据:
1 aaa 85
2 bbb 66
3 ccc 85
1 aaa 75
2 bbb 77
如何写一条SQL语句,查询出相关记录,记录要求过滤掉重复的ID号,即同一个ID号只显示一条记录,相同ID号的记录选取分数值高的记录。
如以上记录查询后显示:
1 aaa 85
3 ccc 85
2 bbb 77
|
我也是初学者 办法比较笨
sqlite> select * from tb_test;
1|aaa|85
2|bbb|66
3|ccc|85
1|aaa|75
2|bbb|77
sqlite> select * from (select * from (select id, name, score from tb_test order by id) order by score) group by id;
1|aaa|85
2|bbb|77
3|ccc|85
sqlite>
sqlite> select * from tb_test;
1|aaa|85
2|bbb|66
3|ccc|85
1|aaa|75
2|bbb|77
sqlite> select * from (select * from (select id, name, score from tb_test order by id) order by score) group by id;
1|aaa|85
2|bbb|77
3|ccc|85
sqlite>