sql查询多个和和的平均值

am46iovg  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(351)

我需要一个求和和和平均值的组合函数的帮助。
我现在有一个时间跟踪系统 'hour' 看起来像这样:


# USER_ID #HOURS #DATE

1        2      2018-01-01
1        1      2018-01-01
2        5      2018-01-01
1        3      2018-01-02
2        8      2018-01-02
2        1      2018-01-02

我想在输出中得到的是:
今天平均小时数(2018-01-01):4小时
我能做的是:

SELECT AVG(hours)
FROM hour h
WHERE h.date = CURDATE()

但这会给我另一个我想要的输出,因为在我的示例中,user_id 1有两个输入,2小时+1小时。这样地。。
2+1+5平均值:266667
3+5平均值:4
所以,我的查询应该需要每个用户的总和,然后得到平均值。我怎么能做这种事?
致以最诚挚的问候!

5kgi1eie

5kgi1eie1#

您可以通过使用 SUM(hours) 然后除以组中的唯一用户总数,使用 COUNT(DISTINCT ...) .
请尝试以下操作:

SELECT SUM(h.hours) / COUNT(DISTINCT h.USER_ID) AS daily_average 
FROM hours AS h
WHERE h.date = CURDATE()

相关问题