gpt4 book ai didi

tsql - 如何在部分字段上进行 GROUP BY?

转载 作者:行者123 更新时间:2023-12-01 04:09:18 32 4
gpt4 key购买 nike

您好,我的数据库中有包含一些浏览器信息的表格,我目前正在使用以下 T-SQL 获取摘要列表:

SELECT Browser, Version, SUM(Count) as Count FROM AnalyticsBrowsers
WHERE Month=8 AND Year=2011
AND UserAgent NOT LIKE '%YandexBot%'
AND UserAgent NOT LIKE '%Googlebot%'
AND UserAgent NOT LIKE '%Yahoo! Slurp%'
AND UserAgent NOT LIKE '%Exabot%'
AND UserAgent NOT LIKE '%Ezooms%'
AND UserAgent NOT LIKE '%facebookexternalhit%'
AND UserAgent NOT LIKE '%YPBot%'
AND UserAgent NOT LIKE '%Nutraspace%'
AND UserAgent NOT LIKE '%AhrefsBot%'
AND UserAgent NOT LIKE '%Gigabot%'
AND UserAgent NOT LIKE '%GT::WWW%'
AND UserAgent NOT LIKE '%WGet%'
AND UserAgent NOT LIKE '%cmsworldmap%'
AND UserAgent NOT LIKE '%CatchBot%'
AND UserAgent NOT LIKE '%SuperPages%'
AND UserAgent NOT LIKE '%msnbot%'
AND UserAgent NOT LIKE '%nutch%'
AND UserAgent NOT LIKE '%Yeti%'
AND UserAgent NOT LIKE '%Curl%'
AND UserAgent NOT LIKE '%Mediapartners-Google%'
AND UserAgent NOT LIKE '%Python-urllib%'
AND UserAgent NOT LIKE '%AC-BaiduBot%'
AND UserAgent NOT LIKE '%MLBot%'
AND UserAgent NOT LIKE '%YahooCacheSystem%'
AND UserAgent NOT LIKE '%Xenu%'
AND UserAgent NOT LIKE '%DoCoMo%'
AND UserAgent NOT LIKE 'Content Crawler'
GROUP BY Browser, Version
ORDER BY Count DESC

它不是太漂亮,但它的工作到目前为止。我得到的结果如下:
Browser            Version      Count
Mozilla 5.0 804
IE 8.0 738
AppleMAC-Safari 5.0 429
IE 7.0 371
IE 6.0 271
Firefox 6.0 189
IE 9.0 137
Firefox 5.0 68
Firefox 3.6.20 42
Firefox 3.6.10 33
Firefox 4.0.1 20
Unknown 0.0 17
Firefox 3.6.18 10
Firefox 5.0.1 9
Mozilla 1.9.2.20 8
Firefox 3.6.13 6
Opera 9.80 6
Firefox 3.6.3 5
Firefox 3.6.12 4
Opera 9.24 4
IE 5.5 4
Mozilla 1.9.2.16 3
Firefox 3.6.21 3
Firefox 3.6.6 3
Firefox 3.6.8 3
Firefox 4.0 3
Mozilla 4.0 3
Firefox 3.5.19 3

我需要对我的 T-SQL 做什么来组合具有相同主要和次要版本号的版本,而不管其他内部版本号是什么?例如,我希望将这些都归为 3.6 版
Firefox            3.6.20       42
Firefox 3.6.10 33
Firefox 3.6.18 10
Firefox 3.6.13 6
Firefox 3.6.3 5
Firefox 3.6.12 4
Firefox 3.6.21 3
Firefox 3.6.6 3
Firefox 3.6.8 3

最佳答案

很讨厌,但你可以替换 Version使用此表达式将所有文本放在第二个小数点之前:

LEFT(Version, CHARINDEX('.', Version + '.', CHARINDEX('.', Version) + 1) - 1)

这假设每个版本至少有一个小数点(例如 1.0)。

关于tsql - 如何在部分字段上进行 GROUP BY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7339966/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com