視覚化に関する限り、これはあなたが話している定期的なサンプリングではないことはわかっていますが、ユーザーのすべての行を見て、間隔バケット、バケット内の SUM を選択し、棒グラフなどに表示します。これは、時間枠内の多くの発生が重要な場合があるため、実際の「分布」を示します。
SELECT DATEADD(day, DATEDIFF(day, 0, timefield), 0) AS bucket -- choose an appropriate granularity (days used here)
,COUNT(*)
FROM entries
WHERE uid = ?
GROUP BY DATEADD(day, DATEDIFF(day, 0, timefield), 0)
ORDER BY DATEADD(day, DATEDIFF(day, 0, timefield), 0)
または、自分自身を繰り返さなければならない方法が気に入らない場合、またはさまざまなバケットで遊んでいて、多くのユーザーを 3-D で分析したい場合 (x、y uid、バケットに対して Z を測定):
SELECT uid
,bucket
,COUNT(*) AS measure
FROM (
SELECT uid
,DATEADD(day, DATEDIFF(day, 0, timefield), 0) AS bucket
FROM entries
) AS buckets
GROUP BY uid
,bucket
ORDER BY uid
,bucket
3 次元でプロットしたい場合は、おそらく、ユーザーにとって意味のある全体的なメトリックに従ってユーザーを並べ替える方法を決定するでしょう。