请教求唯一值的sql语句:?

lord_is_layuping 2009-03-24
现有表如下
id(number)  日期(date)        score(number)
1            2009-3-1        100
2            2009-3-1        500
3            2009-3-1        300
4            2009-3-2        200
5            2009-3-7        400
6            2009-3-2        230
7            2009-3-4        220
我想得到这样的结果:过滤掉日期相同的记录,只要有日期是同一天,就取id是最大值的哪一行,如:
1  2009-3-1    100
2  2009-3-1    500
3  2009-3-1    300
同为2009年3月一日这一天,我就只取id=3的这一行。
--------------------------------------
因此,
上表的结果应该是:
id  日期        score
3  2009-3-1    300
5  2009-3-7    400
6  2009-3-2    230
7  2009-3-4    220


我用的的数据库是oracle
Alan_Xu 2009-03-24
假定你的表名为dateInfo,则查询语句如下:
select id,date,score from dateInfo where id in (select max(id) from dateInfo group by date);
starting 2009-04-01
select sys_guid() from dual
SYS_GUID会保证它创建的标识符在每个数据库里都是唯一的
wmdonald 2009-04-04
假设表为info表(列名为:id,time,score),查询语句如下:
Select * From (select id,time,score,rank() over(Partition By Time Order By id Desc) rk from info) Where rk<2;
LinuxForShare 2009-04-09
select max(id),日期,score from table1 where ... group by 日期,score
wuwei19841002 2010-01-18
网上搜下!自己的勤奋点!!毕竟自己动手,在运用时更顺手顺心,这例子到处都是
jayzotion 2010-01-19
SELECT * FROM TABLE_NAME  WHERE id IN (SELECT MAX(id) FROM TABLE_NAME GROUP BY date)
Global site tag (gtag.js) - Google Analytics