Sql 如何通过多个列值获得唯一的行?

Sql 如何通过多个列值获得唯一的行?,sql,Sql,我正在尝试从时间表中获取唯一的时间表行 这就是时间表的外观: DATE - LEADER - PROJECT - CARDREVISION 正如您在CARDREVISION中看到的,RJONES在8月6日对101项目的时间卡做了两次更改。尽管表格中有3条不同的记录记录,但在8月6日的101项目中,RJONES仍然只有一张时间卡 我如何执行select语句来获取此表中各个时间卡的不同值,其中将显示CARDREVISION的最高值 以下是我想看到的: DATE - LEADER - PROJEC

我正在尝试从时间表中获取唯一的时间表行

这就是时间表的外观:

DATE - LEADER - PROJECT - CARDREVISION 
正如您在CARDREVISION中看到的,RJONES在8月6日对101项目的时间卡做了两次更改。尽管表格中有3条不同的记录记录,但在8月6日的101项目中,RJONES仍然只有一张时间卡

我如何执行select语句来获取此表中各个时间卡的不同值,其中将显示CARDREVISION的最高值

以下是我想看到的:

DATE - LEADER - PROJECT - CARDREVISION
提前感谢

不存在:

select t.DATE, t.LEADER, t.PROJECT, t.CARDREVISION
from tablename t
where not exists (
  select 1 from tablename
  where LEADER = t.LEADER and CARDREVISION > t.CARDREVISION
)
如果您希望每天更新最新版本,请执行以下操作:

select t.DATE, t.LEADER, t.PROJECT, t.CARDREVISION
from tablename t
where not exists (
  select 1 from tablename
  where LEADER = t.LEADER and DATE = t.DATE and CARDREVISION > t.CARDREVISION
)
使用聚合:

select DATE, LEADER, PROJECT, max(CARDREVISION)
from t
group by DATE, LEADER, PROJECT;
select t.DATE, t.LEADER, t.PROJECT, t.CARDREVISION
from tablename t
where not exists (
  select 1 from tablename
  where LEADER = t.LEADER and DATE = t.DATE and CARDREVISION > t.CARDREVISION
)
select DATE, LEADER, PROJECT, max(CARDREVISION)
from t
group by DATE, LEADER, PROJECT;