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;