Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server中按分组,然后合并行_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

在SQL Server中按分组,然后合并行

在SQL Server中按分组,然后合并行,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我使用下面的查询来计算一些数据 select Count(BrowserName) as Count,BrowserName from UserSession group by BrowserName 我得到的结果如下 Count BrowserName 3 IE 4 InternetExplorer 5 Chrome 6 Safari 我只是想知道如何将IE和InternetExplorer组合在一起,以便得到以下格式的结果 Count Browse

我使用下面的查询来计算一些数据

select Count(BrowserName) as Count,BrowserName from UserSession
group by BrowserName
我得到的结果如下

Count BrowserName
3      IE
4      InternetExplorer
5      Chrome
6      Safari
我只是想知道如何将IE和InternetExplorer组合在一起,以便得到以下格式的结果

Count BrowserName
7      IE
5      Chrome
6      Safari

谢谢

您可以使用
案例

select (case when BrowserName in ('IE', 'InternetExplorer') then 'IE'
             else BrowserName
        end) as BrowswerName,
       Count(*) as Count
from UserSession
group by (case when BrowserName in ('IE', 'InternetExplorer') then 'IE'
               else BrowserName
          end);
如果有很多匹配项,那么使用
JOIN
可能更简单:

select coalesce(v.new_browsername, us.browsername) as browsername,
       count(*)
from UserSession us left join
     (values ('InternetExplorer', 'IE')
     ) v(browsername, new_browsername)
     on us.browsername = v.browsername
group by coalesce(v.new_browsername, us.browsername);

您可以在
values()
列表中添加匹配对以进行进一步替换。

您可以使用
case

select (case when BrowserName in ('IE', 'InternetExplorer') then 'IE'
             else BrowserName
        end) as BrowswerName,
       Count(*) as Count
from UserSession
group by (case when BrowserName in ('IE', 'InternetExplorer') then 'IE'
               else BrowserName
          end);
如果有很多匹配项,那么使用
JOIN
可能更简单:

select coalesce(v.new_browsername, us.browsername) as browsername,
       count(*)
from UserSession us left join
     (values ('InternetExplorer', 'IE')
     ) v(browsername, new_browsername)
     on us.browsername = v.browsername
group by coalesce(v.new_browsername, us.browsername);

您可以在
values()
列表中添加匹配对以进行进一步替换。

您也可以使用
REPLACE()


您也可以使用
REPLACE()


哈哈,我只是在发帖后想现在戈登会来回答:)哈哈,我只是在发帖后想现在戈登会来回答:)