2列不同的表并返回所有行

时间:2018-01-19 22:25:38

标签: sql distinct

我想使用不同的2列(ID和__EventType)获取唯一字段,但是,我没有成功。这是我的尝试失败但概念化我想要实现的目标:

SELECT * FROM (select distinct ID, __EventType from SP_HS_Firm_Calendar_All); 

例如,这是我的所有数据:

Select ID, __DisplayName, __EventType,EventDate,EndDate from SP_HS_Firm_Calendar_All 

返回: enter image description here

以下是我希望使用上述不同查询返回的数据: enter image description here

非常感谢你的帮助,非常感谢!

5 个答案:

答案 0 :(得分:2)

您可以在大多数数据库中使用row_number()

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

答案 1 :(得分:1)

您可以使用GROUP BY

SELECT *
FROM SP_HS_Firm_Calendar_All
GROUP BY ID, __EventType;

答案 2 :(得分:0)

请尝试这个: Select DISTINCT (ID, __DisplayName) from SP_HS_Firm_Calendar_All

答案 3 :(得分:0)

您是否尝试过select distinct ID, __EventType from SP_HS_Firm_Calendar_All

理论上,理论上应该使用ID和__EventType的不同组合来获取所有行。

答案 4 :(得分:0)

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

 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