Sql 按2列区分表并返回所有行

Sql 按2列区分表并返回所有行,sql,distinct,Sql,Distinct,我想在两列(ID和_EventType)上使用distinct获得唯一字段,但是,我没有成功。以下是我的尝试,虽然失败了,但概念化了我试图实现的目标: SELECT * FROM (select distinct ID, __EventType from SP_HS_Firm_Calendar_All); 例如,以下是我的所有数据: Select ID, __DisplayName, __EventType,EventDate,EndDate from SP_HS_Firm_Calendar

我想在两列(ID和_EventType)上使用distinct获得唯一字段,但是,我没有成功。以下是我的尝试,虽然失败了,但概念化了我试图实现的目标:

SELECT * FROM (select distinct ID, __EventType from SP_HS_Firm_Calendar_All); 
例如,以下是我的所有数据:

Select ID, __DisplayName, __EventType,EventDate,EndDate from SP_HS_Firm_Calendar_All 
返回:

下面是我希望使用上面的distinct query返回的数据:

非常感谢您的帮助,非常感谢

请试试这个:
从SP\HS\u Firm\u Calendar\u All中选择DISTINCT(ID,\u DisplayName)
您是否尝试过从SP\HS\u Firm\u Calendar\u All中选择DISTINCT ID,\u EventType


理论上,仅此一点就可以使所有行具有ID和u EventType的不同组合。

您可以在大多数数据库中使用
row\u number()

select t.*
from (select t.*, row_number() over (partition by id, _eventtype order by id) as seqnum
      from t
     ) t
where seqnum = 1;

您可以使用“分组依据”

SELECT *
FROM SP_HS_Firm_Calendar_All
GROUP BY ID, __EventType;

这是最终的解决方案,非常感谢

 select ID, __DisplayName, __EventType,EventDate,EndDate from (select t.*, row_number() over (partition by id, __EventType order by id) as seqnum from SP_HS_Firm_Calendar_All t) t where seqnum =1