MYSQL 选择平均条目数

标签 mysql

我有一个表,每次用户创建案例时都有一个唯一键:

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/

相关文章:

PHP foreach 将行名称设置为新变量

php - 使用 Laravel 计算我当前点与 MySQL 中其他点之间的距离

mysql - 使用最大时间和时间总和检索记录,如果不同用户有相同时间,则获取具有最新创建日期的记录

当将 COUNT 与 GROUP BY 一起使用时,MySQL 包含零行

mysql - Logstash sql_last_value 未更新

Mysql如何找到当前数据库,赋值到一个字符串变量中

php - 按 ID 和时间戳计算多个表中的行数

mysql - Magento 产品标题 char_length 限制

mysql - Ubuntu:无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

mysql - 在 SQL 中使用 min 和 DATE()