如果某物不是数字,有没有办法得到它的平均值?
我的表格:
ID| CAT | TITLE | DATE |
--|-------|---------|---------------------|
1 | CAT01 | TITLE01 | 2013-01-18 20:37:15 |
2 | CAT01 | TITLE02 | 2013-01-18 20:37:16 |
3 | CAT02 | TITLE03 | 2013-01-19 12:09:54 |我怎样才能得到每天的平均发帖数?
现在我使用的是:
SELECT AVG(cat) / DATEDIFF('2013-01-19', '2013-01-18') as average
FROM posts
WHERE date BETWEEN '2013-01-18' AND '2013-01-19'"但对我来说,它不会返回平均计数。也许我应该先计算(Cat)为cnt,然后使用avg(cnt)作为平均值?
或者AVG不能用于非数字表?
发布于 2013-01-31 02:09:52
您可以在一个步骤中完成此操作。可以在这里找到一个经过测试的示例:http://sqlfiddle.com/#!2/05760/12
SELECT
COUNT(*) /
COUNT(DISTINCT cast(`date` as date)) avg_posts_per_day
FROM
posts或者,您可以通过两个步骤完成此操作:
可以在这里找到一个经过测试的示例:http://sqlfiddle.com/#!2/05760/4
SELECT
AVG(posts_per_day) AS AVG_POSTS_PER_DAY
FROM (
SELECT
CAST(`date` as date),
COUNT(*) posts_per_day
FROM posts
GROUP BY
CAST(`date` as date)
) ppd发布于 2013-01-31 02:06:42
尝尝这个
SELECT COUNT(cat)/2 as avrag
FROM posts 编辑:
如果您想使用两个日期之间的平均值,只需添加以下内容
where date between 'the_date1' AND 'the_date2'发布于 2013-01-31 02:16:14
您可以做的是获取总帖子数,即从数据库中的第一个时间戳开始的天数,并根据这两个数字计算平均值。
https://stackoverflow.com/questions/14610658
复制相似问题