我有一个表,每次用户创建案例时都有一个唯一键:
id|doctor_id|created_dt
--|---------|-----------
1|23 |datetimestamp
2|23 |datetimestamp
3|17 |datetimestamp
如何选择并返回用户每月的平均条目数?
我试过这个:
SELECT avg (id)
FROM `cases`
WHERE created_dt BETWEEN DATE_SUB(CURDATE(),INTERVAL 90 DAY) AND CURDATE()
and doctor_id = 17
但这会返回一个不可能为真的大得离谱的值。
澄清一下:我正在尝试获取类似 doctor id 17 这样的信息,该表每月平均有 2 个条目。
最佳答案
我认为您对“平均”的想法感到困惑。您不需要平均 id 或平均 user_id。您想要表中的平均条目数,因此您可以使用 COUNT()
:
SELECT count(id)/3 AS AverageMonthlyCases
FROM `cases`
WHERE created_dt BETWEEN DATE_SUB(CURDATE(),INTERVAL 90 DAY) AND CURDATE()
group by doctor_id
由于您有 90 天的时间间隔,因此您希望每 30 天计算行数,即 count/3。
关于MYSQL 选择平均条目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22017548/