我有一张如下表:
并且我想按DAY计算PageURL和GROUP列中说“ab”和“cd”的出现次数(即,无论一天出现多少次,它都算作1)。
ID User Activity PageURL ActDateTime
1 Me act1 abcd 2013-01-17 19:09:01.040
2 Me act2 cdab 2013-01-17 19:09:06.613
3 You act2 xyza 2013-01-30 16:10:50.177
4 Me act3 xyab 2013-01-30 10:35:09.037
我想要 2 列...1 用于“ab”计数,1 用于“cd”计数。
在上面的示例中,“ab”有 3 个计数,但我只会算作 2,因为前 2 个发生在同一天(所以算作 1)。
同样,PageURL 列中的“cd”有 2 个计数,但我只想算作 1,因为也发生在同一天。
此外,我想按月份分组,即 Jan-12、Feb-12、March-12、April-12 ...等。
非常感谢一些帮助和建议。谢谢!
这是我到目前为止所做的(但它没有考虑按 DAY 分组)
SELECT USER,
department,
activity,
[MonthYear] = DATENAME(mm, ActDateTime)+ ' - ' +
DATENAME(yy, actdatetime),
[ab] = sum(case when pageURL like '%ab%' THEN 1 else 0 END),
[cd]= sum(CASE WHEN pageURL LIKE '%cd%'THEN 1 ELSE 0 END)
FROM activityLog
GROUP BY USER,
department,
activity,
DATENAME(mm, ActDateTime)+ ' - ' +
DATENAME(yy, ActDateTime)
ORDER BY USER,
department,
activity,
DATENAME(mm, ActDateTime)+ ' - ' + DATENAME(yy, ActDateTime)