mysql,php用多个用户ID计算每月的平均值

时间:2012-11-23 09:21:57

标签: php mysql

这让我发疯了,我无法在没有大量代码的情况下管理这个,这是我的sql表:

userid    date        orderValue
2       2012-01-01      2000
1       2012-01-01      3000
1       2012-01-01      5000
1       2012-01-02      5000
2       2012-01-02      8000
2       2012-01-02      8000

对于每个月,我需要从当月的第一天开始获得每位用户的平均价值。

我正在寻找的输出是沿线的 $ orderArray [$月] [$用户ID] [ '平均']

我不接受需要代码,但是需要让我明白当前人们坚持的想法。你会怎么解决这个问题?

2 个答案:

答案 0 :(得分:1)

有些事情:

SELECT
  `userid`,
  DATE_FORMAT(`date`, '%Y%m') AS `month`,
  AVG(`orderValue`) AS `mean`
FROM
  `orderTable`
GROUP BY
  `userid`,
  `month`

请注意,我使用的是DATE_FORMAT而不是MONTH。如果你不这样做,2012年1月和2013年1月将被有效合并,我想这不是你想要的。

您必须通过迭代SQL结果集并将每个平均值放在适当的位置,在PHP中自己创建所需的结果数组。

答案 1 :(得分:0)

试试这个::

    Select
    userid,
    SUM(ordervalue)/count(*) as mean

    from table 
    group by 

   userid