-1

我的应用中有一个出价表,我需要计算过去 6 个月内每位用户的平均出价数。表信息如下:

  `bid_id` int(10) 
  `catalog_item_id`
  `customer_id` int(10)  
  `amount` decimal(9,2)  
  `date_modified` datetime

所以基本上我需要使用 awhere date_modified > "2012-07-31"来限制过去 6 个月,然后以某种方式按每 6 个月分组,1)计算出价和有多少用户出价,然后我会计算出我们的总投标人的平均值.

这甚至有意义吗?我的方法错了吗?任何帮助将非常感激!

4

1 回答 1

1

试试这个:

SELECT COUNT(`bid_id`) `bids_per_month`, 
       COUNT(DISTINCT `customer_id`) `bidders_per_month`, 
       COUNT(`bid_id`)/COUNT(DISTINCT `customer_id`) `avg_per_month`,
       YEAR(`date_modified`) `year`, MONTH(`date_modified`) `month` 
  FROM bids
 WHERE DATE(`date_modified`) > DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
 GROUP BY `year`, `month`

明明DATE_SUB(CURDATE(), INTERVAL 6 MONTH)可以换成静态日期'2012-07-31'

于 2013-02-01T00:08:08.990 回答