好的,所以我有一个名为NewsEvent的表,其中包含以下列:
现在我只处理前3列,基本上我想做的是获取连接到同一事件的数字新闻,但问题是多个用户可以将某个新闻链接到一个事件,我只需要这个新闻只计算一次。
假设有ID为1的事件,有5个新闻和3个用户将这5个新闻与该事件相关联,使用我的查询我将获得与该事件相关的15个新闻的结果。
现在查询本身是正确的,但是如何修改它只计算一次新闻,并根据新闻列计算时删除重复值,这样它返回的结果是5,而不是15。
我的查询如下:
Select count(NE.NewsID) as [Number of news linked to the event], NE.EventID as EventID
From NewsEvent NE
Group By NE.EventID
Order By Count(NE.NewsID) Desc
我正在使用SQL Server 2014
答案 0 :(得分:2)
我想你只想要count(distinct)
:
Select count(distinct NE.NewsID) as [Number of news linked to the event],
NE.EventID as EventID
From NewsEvent NE
Group By NE.EventID
Order By Count(NE.NewsID) Desc;
答案 1 :(得分:1)
嗨,您可以使用以下查询,
没有重复(不同的值)
Select count(distinct NE.NewsID) as [Number of news linked to the event], NE.EventID as EventID
From NewsEvent NE
Group By NE.EventID
Order By Count(NE.NewsID) Desc
仅重复
Select count(NE.NewsID) as [Number of news linked to the event], NE.EventID as EventID
From NewsEvent NE
Group By NE.EventID
Order By Count(NE.NewsID) Desc having count(NE.NewsID) > 1