首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >平均值或计算平均值

平均值或计算平均值
EN

Stack Overflow用户
提问于 2013-01-31 02:01:32
回答 5查看 494关注 0票数 2

如果某物不是数字,有没有办法得到它的平均值?

我的表格:

代码语言:javascript
复制
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 |

我怎样才能得到每天的平均发帖数?

现在我使用的是:

代码语言:javascript
复制
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不能用于非数字表?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-31 02:09:52

您可以在一个步骤中完成此操作。可以在这里找到一个经过测试的示例:http://sqlfiddle.com/#!2/05760/12

代码语言:javascript
复制
SELECT 
  COUNT(*) / 
  COUNT(DISTINCT cast(`date` as date)) avg_posts_per_day
FROM 
  posts

或者,您可以通过两个步骤完成此操作:

  1. 每天获取帖子,
  2. 平均步骤1的结果。

可以在这里找到一个经过测试的示例:http://sqlfiddle.com/#!2/05760/4

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2013-01-31 02:06:42

尝尝这个

代码语言:javascript
复制
   SELECT COUNT(cat)/2  as avrag
   FROM posts 

编辑:

如果您想使用两个日期之间的平均值,只需添加以下内容

代码语言:javascript
复制
     where date between 'the_date1' AND 'the_date2'
票数 0
EN

Stack Overflow用户

发布于 2013-01-31 02:16:14

您可以做的是获取总帖子数,即从数据库中的第一个时间戳开始的天数,并根据这两个数字计算平均值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14610658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档