SQL server 2012。
我正在将UserAgent捕获到我的数据库中,并且我正在尝试对其运行一些查询。
我想将32位和64位条目放在一起下面是这些在db中显示的内容。
Mozilla / 5.0(Windows NT 6.1; rv:26.0)Gecko / 20100101 Firefox / 26.0
Mozilla / 5.0(Windows NT 6.1; WOW64; rv:26.0)Gecko / 20100101 Firefox / 26.0
我当前的查询:
Select count(*) as counts, UA
from mytable
group by UA
order by counts desc
这样做的好方法是什么?我可以在最后的X字符上做一个子字符串吗?我假设这些是不同的条目(这是我期望发生的)
答案 0 :(得分:1)
假设WOW64;
是2个值之间唯一不同的子字符串,您可以在分组之前对字符串使用REPLACE
,如下所示:
Select count(*) as counts, replace(UA,' WOW64;','')
from mytable
group by replace(UA,' WOW64;','')
order by counts desc
然而,正如@GordonLinoff在评论中所说,更好的选择是创建一个引用表,为您认为相似的所有记录赋值,将其与表连接,然后按值列分组。