我有下表
Name|Date |Activity
Ann |2016-01-01|Sleep
Ann |2016-01-01|Walk
Pete|2016-01-01|Sleep
Pete|2016-01-01|Walk
Pete|2016-01-01|Swim
此表持续了全年,超过100人。我想获得每个人的平均活动量。喜欢
Ann |3.3,
Pete|4.2
表示Ann在数据集时间范围内每天进行3.3次活动。
我尝试过的是
Select count(Date), Name from table
group by date, name
但是当我运行这个时,每个名字都会有多个条目。任何人都可以帮我完成这个查询吗?
答案 0 :(得分:1)
使用以下查询:
SELECT Name, [Date], COUNT(*) AS cnt
FROM mytable
GROUP BY Name, [Date]
您可以获得每个人每天的活动数量。您可以将上述内容包装在子查询中并应用AVG
以获取每个人的平均活动数量:
SELECT Name, AVG(cnt*1.0)
FROM (
SELECT Name, [Date], COUNT(*) AS cnt
FROM mytable
GROUP BY Name, [Date]) AS t
GROUP BY t.Name