leetcode512。ゲームプレイの解析II(SQL)

表:アクティビティ

+ --------- + -------------- +
|カラム名|タイプ|
+ -------------- + - + -------
| player_id | int型|
| DEVICE_ID | int型|
| EVENT_DATE | DATE |
| games_played | int型|
+ ------ + -------------- + ---
(player_id、EVENT_DATE)は、2つの主要な鍵となる
ゲームのプレイヤーのゲーム活動の一部、この表に示し
た各ラインは、ログアウトしてより多くのゲーム(かもしれない1日をプレイするために使用する前にデバイスであります0)レコードプレーヤー
各プレイヤーにデバイス名の最初の上陸を記述し、SQLクエリを書いてください

クエリは、次の例のフォーマットの結果:

アクティビティテーブル:
+ ----------- + ----------- + ------------ + --------- ----- +
| player_id | DEVICE_ID | EVENT_DATE | games_played |
+ ----------- + ----------- + ------------ + ------------ - +
| 1 | 2 | 2016年3月1日| 5 |
| 1 | 2 | 2016年5月2日| 6 |
| 2 | 3 | 2017年6月25日| 1 |
| 3 | 1 | 2016年3月2日| 0 |
| 3 | 4 | 2018年7月3日| 5 |
+ ----------- + ----------- + ------------ + ------------ - +

結果テーブル:
+ ----------- + ----------- +
| player_id | DEVICE_ID |
+ ----------- + ----------- +
| 1 | 2 |
| 2 | 3 |
| 3 | 1 |
+ ----------- + ----------- +

アイデア:ネストされたクエリは、各プレイヤーのために、最も早い時刻を特定するために、あなたはプレーヤーとIDの間で最もによると、対応するDEVICE_IDを選択することができます。

select a.player_id as 'player_id',a.device_id as 'device_id'
from activity as a
where a.event_date=(select min(b.event_date) from activity as b where a.player_id=b.player_id);

 

公開された552元の記事 ウォンの賞賛10000 + ビュー132万+

おすすめ

転載: blog.csdn.net/hebtu666/article/details/104322325