2010-07-22 66 views
2

您好我希望通过替换字符的字段对结果进行分组,但也保留原始值。SQL中的替换和分组依据

这是我有,但我需要返回原始的URL值,而不会改变结果。

select Count(ID) as TotalClicks, Replace(URL, '/', '') as DistinctURL 
    from email_click_throughs 
where emailid = @ID 
group by Replace(URL, '/', '') 
order by TotalClicks desc 
+1

但大概可能有多个原始URL映射到distinctURL,那么您希望如何处理?例如URL =“/default.html”和URL =“default.html”。你还使用了什么RDBMS? – 2010-07-22 21:50:33

回答

3

这会给你你所描述的,但它是在分组“替换(URL ......”多余的,所以我可能会误解:

select Count(ID) as TotalClicks, URL as DistinctURL 
from email_click_throughs 
where emailid = @ID 
group by Replace(URL, '/', ''), URL 
order by TotalClicks desc 

如果你只是想获得回一个网址,即使两者进行去除后“/”相当于,你可以不喜欢

select Count(ID) as TotalClicks, Max(URL) as DistinctURL 
from email_click_throughs 
where emailid = @ID group by Replace(URL, '/', '') 
order by TotalClicks desc 

但在这你“匹配”的是越来越下降了,你没有太多的控制权。

+0

在第二个声明中指明了它,谢谢 – Jamie 2010-07-22 22:03:29