我在 CVS 文件中有一小部分浏览器使用数据:
Browser | Hits
IE 9 | 5
IE 6 | 45
IE 7 | 33
Chrome | 122
Firefox | 8
我想根据浏览器列中的公共子字符串进行聚合(例如所有包含“IE”的浏览器值):
Browser | Hits
IE | 83
Chrome | 122
Firefox | 8
使用查询在 SQL Server 中执行此操作会更容易吗?如果是这样,那个答案也很好。
我在 CVS 文件中有一小部分浏览器使用数据:
Browser | Hits
IE 9 | 5
IE 6 | 45
IE 7 | 33
Chrome | 122
Firefox | 8
我想根据浏览器列中的公共子字符串进行聚合(例如所有包含“IE”的浏览器值):
Browser | Hits
IE | 83
Chrome | 122
Firefox | 8
使用查询在 SQL Server 中执行此操作会更容易吗?如果是这样,那个答案也很好。
您不需要 excel 中的数组公式 - 您可以将 SUMIF 与通配符一起使用
=SUMIF(A:A,E3&"*",B:B)
其中 E3 包含搜索条件,如“chrome”
Excel 中最简单的方法是将所需的值放在一列中并使用数组函数。例如,将值从 E3 开始:
IE
Chrome
Firefox
然后使用条件聚合。假设数据在 A1 到 B1000 中(第一行是标题),那么 F3 中的公式将是:
{sum(if(isnumber(search(E3, $A$2:$A:$1000)) > 0, $B$2:$B$1000))}
请注意,这是您使用 ctrl-shift-enter 创建的数组函数(在网络上查找主题)。然后,您可以将该功能复制到该列中。
如果数据最初位于 SQL 数据库中,则无需通过 CSV 文件即可更轻松地从那里获得答案。但是,如果您对原始数据格式有所了解,将会很有帮助。
在 Excel 中,尝试使用 SEARCH 搜索子字符串,
=IF(IFERROR(SEARCH("IE", A2), 0), B2,0)
如果 A1(浏览器)包含字符串“IE”,它将给出 A2(命中)的值。然后从那里你可以建立一个支点。请参阅IF 单元格包含字符串。
在 T-SQL 中,您可以有这样的视图:
SELECT
Browser = 'IE'
Hits = SUM(CASE WHEN [Browser] LIKE '%IE%' THEN [Hits] ELSE 0 END)
FROM
MyTable
UNION
SELECT
Browser = 'Mozilla'
Hits = SUM(CASE WHEN [Browser] LIKE '%Mozilla%' THEN [Hits] ELSE 0 END)
FROM
MyTable
等等
但请参阅下面的巴里胡迪尼。
选择浏览器,从(您的表)按浏览器分组。
看看这是否适用