我在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中这样做会更容易吗?如果是这样,答案也会很好。
答案 0 :(得分:3)
您不需要excel中的数组公式 - 您可以将SUMIF与通配符一起使用
=SUMIF(A:A,E3&"*",B:B)
其中E3包含搜索条件,例如“chrome”
答案 1 :(得分:0)
在Excel中,尝试使用SEARCH搜索子字符串,
=IF(IFERROR(SEARCH("IE", A2), 0), B2,0)
如果A1(浏览器)包含字符串“IE”,则会给出A2(命中)的值。然后从那里你可以建立一个支点。请参阅IF a cell contains a string。
在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
等。
但请参阅下面的Barry Houdini。
答案 2 :(得分:0)
选择浏览器,计数(点击) 从(你的桌子) 按浏览器分组。
查看是否可以使用
答案 3 :(得分:0)
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创建的数组函数(在Web上查找主题)。然后,您可以将该功能复制到列中。
如果数据最初位于SQL数据库中,则无需通过CSV文件就可以更轻松地获得答案。但是,如果您了解原始数据格式,将会很有帮助。