2

非常に簡単に言えば、次のような表があります。

customer_surveys
----------------
id | customer_id | score | date
1  |           1 |     5 | 01-01-2013     
2  |           1 |     6 | 01-02-2013  
3  |           2 |     8 | 01-03-2013   
4  |           2 |     7 | 01-04-2013

次のようなビューを作成したいと思います。

customer_survey_scores
----------------------
customer_id | score
1           | 6
2           | 7

ビューは、各顧客から最新の調査スコアを選択するだけです。

複雑なサブクエリを作成することでこれを達成できましたが、できるだけ速く実行するにはこれが必要です。

4

2 に答える 2

0

GROUP_CONCATは、グループ内で順序付けされたデータをフェッチするために使用できます。

SELECT customer_id, 
SUBSTRING_INDEX(GROUP_CONCAT(score ORDER BY `date` DESC), 1) AS latest_score
FROM customer_surveys
GROUP BY customer_id

SUBSTRING_INDEX関数を使用すると、区切り文字列の最初の項目を取得できます。

@juergen-dによる以前の回答も確かに機能します。

于 2013-05-23T05:02:34.263 に答える