这让我发疯了,我无法在没有大量代码的情况下管理这个,这是我的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] [ '平均']
我不接受需要代码,但是需要让我明白当前人们坚持的想法。你会怎么解决这个问题?
答案 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