我试图找出用户进入办公室的平均次数。对于上任的唯一用户,我有一个与下面的场景类似的场景。我的数据库包含用户每次来办公室的数据。
请注意:每个人都有不同的名字,因为我使用的不是他们的名字而是某种 ID。
Date Person Action
01-01-2014 John Enter
01-01-2014 lilly Enter
01-01-2014 lilly Enter
01-01-2014 bill Enter
01-02-2014 bill Enter
01-02-2014 lilly Enter
01-02-2014 bill Enter
01-02-2014 John Enter
01-02-2014 John Enter
我可以通过将用户分组在一起并根据计数运行平均值来执行查询以提供平均值,但只有在查询中指定日期时它才有效。我正在尝试进行查询,分别计算每个日期的平均值,然后给出每个日期的平均值。
SELECT AVG(sub.count1)
FROM (
SELECT COUNT(*) AS count1, Date AS date1, user FROM table1 WHERE
date='01-01-2014' GROUP BY user
) AS sub
我想要的结果
Date Avgcount
01-01-2014 1.33
01-02-2014 1.667
谢谢你的帮助。
最佳答案
所以您想要每人每天的平均条目数……是吗?换句话说,条目总数除以参与这些条目的总人数,对吧?
= # 条目/# 制作这些条目的人
是吗?
如果是这样,以下应该可以解决问题:
SELECT COUNT(*)/COUNT(DISTINCT person)
FROM table1
GROUP BY date
ORDER BY date ASC;
count(*) 会显示每天的条目数。如果您的表包含除“Entry”操作之外的任何内容,您需要添加一个 where 子句,说明 WHERE action =“Enter”。但除此之外,我们只取条目总数,除以创建这些条目的不同人数,按日期汇总,并按 ASC 顺序排列。
关于mysql - 分别计算唯一日期的平均计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24411322/