これはテーブルであるこのクエリはどのように作成できますか?
----------------------------------------------
id | username | point | level | created_date
----------------------------------------------
1 | name_a | 1 | 1 | 2011-08-01
2 | name_a | 2 | 2 | 2011-08-02
3 | name_b | 5 | 1 | 2011-08-02
3 | name_c | 6 | 1 | 2011-08-02
4 | name_d | 1 | 1 | 2011-08-01
5 | name_d | 3 | 1 | 2011-08-02
5 | name_d | 5 | 2 | 2011-08-03
4 | name_e | 5 | 1 | 2011-08-01
5 | name_e | 5 | 2 | 2011-08-02
5 | name_e | 5 | 3 | 2011-08-03
----------------------------------------------
を試験するためのクエリの要件は、(1つのクエリに可能な限り)テーブルのユーザ名、ポイントを照会することです。
- 各レベルでのユーザーのスコアの合計で並べ替えます。
- ユーザーが同じレベルで2点のスコアを取得した場合、最新スコアのみを取得します。
- グループ名で
- 合計スコアがレベルごとにスコアの10未満の
- 最大でなければならない5
出力サンプルです:
--------------------
username | tpoint|
--------------------
name_d | 8 |
name_b | 5 |
name_a | 3 |
--------------------
name_e
とname_c
が無視されました。
私はこの1つは近いと思いますが、あなたは、ルール2が隠されているスコア – Mfoo
をチェックするCASE文を追加する必要がありますか? – duedl0r
まず、created_dateがソートされたテーブルをフェッチします。次に、ユーザー名とレベルでGROUP BYを実行します。これにより、created_date DESCでソートされた最新の値がポイントに与えられます。 –