1

これは私を夢中にさせています.大量のコードなしではこれを管理することはできません.これは私の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[$month][$userid]['mean'] の行に沿ったものです

私はコードを中継する必要はありません。男が固執している現在の考えを理解する必要があります。これを解決するにはどうすればよいでしょうか?

4

2 に答える 2

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 で自分で作成する必要があります。

于 2012-11-23T09:50:27.740 に答える
0

これを試して ::

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

    from table 
    group by 

   userid
于 2012-11-23T09:26:10.317 に答える