我正在设计有关用户如何推出某些内容的数据库设计。 我的想法是有时间戳(DateTime)列和方法列(varchar)。
这个'方法'(varchar)可以是任何东西:
如何计算使用次数,但将某些值分组。在这种情况下,我希望得到我的结果:
答案 0 :(得分:2)
您需要某种方法来定义哪些“方法”属于“方法组”。
一种方法是拥有一个查找表:
tbl_methodgroup method_id Method Method_group 1 Button_OK Buttons 2 Button_X Buttons 3 App_Y App_Y 4 App_Z App_Z
然后你可以使用:
select
b.method_group,
count(1)
from
tbl_methodgroup a
inner join tbl_method b on a.Method=b.Method
group by b.method_group
随着更多方法的添加,此方法具有可扩展性的优势。而不是手动编码查询,每次都需要修改。
答案 1 :(得分:1)
如果表的名称是tblTest,则查询将如下所示:
SELECT method, COUNT(*) FROM tblTEst Group BY method
道歉,如果我错过了问题,如果您在数据和分组方案中保持一致,那么最后一次机会是正确的:
SELECT LEFT(method,CHARINDEX('_',method)-1),
COUNT(*)
FROM tblTest
GROUP BY LEFT(method,CHARINDEX('_',method)-1)
否则Stuart Moore的回答是正确的。