区别并从where子句返回一个值

时间:2013-09-30 13:44:37

标签: sql-server distinct

在我写下这篇文章之前,我花了一整天的时间来解决这个问题。请帮我解决这个问题。

table source:
      ID | FID | ROLE
       1 | 1 |  16
       2 | 1 |  17
       3 | 1 |  16
       4 | 2 |  16
       5 | 2 |  17
       6 | 2 |  16


result:
  ID | FID | ROLE
   3 | 1 |  16
   6 | 2 |  16

数据库:SQL SERVER 描述:我需要的结果是FID值(返回单个值/单行),但仅适用于role = 16并选择更大/更大的ID。


无论如何

3 个答案:

答案 0 :(得分:0)

试试这个;

SELECT MAX(ID) AS ID, FID, ROLE
FROM Table_Name
WHERE ROLE = 16
GROUP BY FID, ROLE

答案 1 :(得分:0)

这是一种方法。

select 
  max(id) as id, 
  fid, 
  role 
from source 
where role = 16
group by
  fid, 
  role

答案 2 :(得分:0)

select distinct FID, max(ID)
from Tabel_Name
group by FID