0

次のフィールドを持つテーブル収益があります

+----+-----------+-------------+---------------+
| id | member_id | amount_paid | datetime_paid |
+----+-----------+-------------+---------------+

クエリを実行して、最大収益の上位10日を見つけたいと思います。これを達成するための最速の方法は何でしょうか?テーブルには多くのデータがあります。

よろしく、

4

3 に答える 3

4

それを行う基本的なクエリを試してください:

SELECT DATE(`datetime_paid`) AS `Max Revenue`
    FROM `revenue`
    ORDER BY `amount_paid` DESC
    GROUP BY DATE(`datetime_paid`)
    LIMIT 10;

これにより、最大支払日数トップ10が表示されます。:)

于 2012-06-08T15:19:08.083 に答える
2

datetime_paid列が何らかの日付または時刻タイプであると仮定すると( MySQLドキュメントを参照)、次のように機能するはずです。

SELECT SUM( `amount_paid` ) AS `amount`, DATE( `datetime_paid` ) as `date`
  FROM yourTable
  GROUP BY `date`
  ORDER BY `amount` DESC
  LIMIT 10
于 2012-06-08T15:19:04.117 に答える
0

まず、支払いが行われた日ごとに結果をグループ化する必要があります。これは、を選択DATE(datetime_paid) as paydayしてから、でグループ化することで実行できますpayday。合計を取得するには、を選択しますSUM(amount_paid) as total。最後に、トップ10を取得するには、total descとで並べ替えlimit 10ます。

最終的なクエリは次のようになります。

SELECT DATE(`datetime_paid`) AS `payday`, SUM(`amount_paid`) AS `total`
FROM `table_name_here`
GROUP BY `payday`
ORDER BY `total` DESC
LIMIT 10

ORDER BYその行をに変更する必要があるかもしれORDER BY SUM(amount_paid) DESCません。フィールドエイリアスが順序付けで許可されているかどうかは思い出せません。

于 2012-06-08T15:21:26.750 に答える