Sql 组byI末尾的ed列将其设置为标量值UDFYou可以使用公共表表达式执行case操作并设置需要汇总的数据。您还可以将映射放在单独的表中,使其易于维护。在像“%”+mt.Map+'%@MikeMiller这样的用户代理上使用类似于左外连接MappingTab
Sql 组byI末尾的ed列将其设置为标量值UDFYou可以使用公共表表达式执行case操作并设置需要汇总的数据。您还可以将映射放在单独的表中,使其易于维护。在像“%”+mt.Map+'%@MikeMiller这样的用户代理上使用类似于左外连接MappingTab,sql,sql-server,Sql,Sql Server,组byI末尾的ed列将其设置为标量值UDFYou可以使用公共表表达式执行case操作并设置需要汇总的数据。您还可以将映射放在单独的表中,使其易于维护。在像“%”+mt.Map+'%@MikeMiller这样的用户代理上使用类似于左外连接MappingTable mt的东西连接到映射表上我觉得CTE在我的情况下更有用,因为我的db结构有限。因为数据库每晚都会更新[恢复到最新的专业版本],我正在分析模块上运行此查询。使用额外的表执行CTE/UDF/left join如何 Windows-10
组byI末尾的ed列将其设置为标量值UDFYou可以使用公共表表达式执行case操作并设置需要汇总的数据。您还可以将映射放在单独的表中,使其易于维护。在像“%”+mt.Map+'%@MikeMiller这样的用户代理上使用类似于左外连接MappingTable mt的东西连接到映射表上我觉得CTE在我的情况下更有用,因为我的db结构有限。因为数据库每晚都会更新[恢复到最新的专业版本],我正在分析模块上运行此查询。使用额外的表执行CTE/UDF/left join如何
Windows-10 yyy
Windows-8 xxx
Windows-7 abc
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/8.0;
Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 etc
Mozilla/4.0(compatible;MSIE7.0;WindowsNT10.0;WOW64;Trident/8.0;
Mozilla/5.0(WindowsNT6.3;Trident/7.0;Touch;MAARJS;rv:11.0)likeGecko etc
SELECT
COUNT(d.UserAgent) as countname,
Replace(d.UserAgent, ' ', ' ') as name
FROM
LOGINHISTORYTABLE as d
WHERE
d.CreatedDate > '2017-02-08'
AND d.CreatedDate < '2017-02-09'
AND (Replace(d.UserAgent, ' ', '') like '%WindowsNT10.0%'
OR Replace(d.UserAgent, ' ', '') like '%WindowsNT6.3%')
GROUP BY
d.UserAgent
SELECT SUM(countname) as TotalCount , 'Windows 10' as OS
FROM
(
SELECT COUNT(d.UserAgent) as countname,
Replace(d.UserAgent, ' ', ' ') as name
FROM LOGINHISTORYTABLE as d
WHERE d.CreatedDate> '2017-02-08' AND d.CreatedDate < '2017-02-09' AND
(Replace(d.UserAgent, ' ', '') like '%WindowsNT10.0%'
OR
Replace(d.UserAgent, ' ', '') like '%WindowsNT6.3%')
GROUP BY d.UserAgent
)a
SELECT SUM(countname) as TotalCount ,
name
FROM
(
SELECT COUNT(d.UserAgent) as countname,
Replace(d.UserAgent, ' ', ' ') as name
FROM LOGINHISTORYTABLE as d
WHERE d.CreatedDate> '2017-02-08' AND d.CreatedDate < '2017-02-09' AND
(Replace(d.UserAgent, ' ', '') like '%WindowsNT10.0%'
OR
Replace(d.UserAgent, ' ', '') like '%WindowsNT6.3%')
GROUP BY d.UserAgent
)a
group by name
SELECT name as OS,SUM(countname) as TotalCount
FROM
(
SELECT COUNT(d.UserAgent) as countname,
Replace(d.UserAgent, ' ', ' ') as name
FROM LOGINHISTORYTABLE as d
WHERE d.CreatedDate> '2017-02-08' AND d.CreatedDate < '2017-02-09' AND
(Replace(d.UserAgent, ' ', '') like '%WindowsNT10.0%'
OR
Replace(d.UserAgent, ' ', '') like '%WindowsNT6.3%')
GROUP BY d.UserAgent
)a
GROUP BY name
WITH TranslatedOS_CTE AS (
SELECT UserAgent,CreatedDate,
case when UserAgent like '%NT 6.3%' then 'Windows8'
when UserAgent like '%Windows NT 10.0%' then 'Windows10'
else UserAgent
end as OS
FROM LOGINHISTORYTABLE
)
Select Count(0), [OS] from TranslatedOS_CTE
WHERE CreatedDate> '2017-02-08' AND CreatedDate < '2017-02-09'
group by OS