私は次のようなテーブルを持っています:
そして、PageURL列とGROUP by DAY列の「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つは同じ日に発生したため(1としてカウント)、2つとしてカウントします。
繰り返しになりますが、PageURL列の「cd」には2つのカウントがありますが、同じ日に発生したため、1つだけカウントしたいと思います。
さらに、月-年、つまり1月12日、2月12日、3月12日、4月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)