# クエリパラメーター値への SQL データエクスプローラー利用法

> Learn how to query custom event parameters in SQL Data Explorer with practical examples.

## 概要##queries

SQL データエクスプローラーツールを使用して、特定のパラメーターの値を分析します。

以下に、パラメーター値を分析する複数の方法とともにクエリの実際的な例とコメントを示し、ゲーム用にそれらのクエリを複製する方法をよりよく理解できるようにします。

## 手順

* 以下のすべての例では、同じコンテキストを使用します。プレイヤーがキャラクターを選び、ダンジョンを開始して完了し、ダンジョンで健康状態を回復するためにポーションを使用するロールプレイングゲーム (RPG) です。
* これらのクエリを複製するときに、強調表示されているクエリ項目を置き換えて、自身のイベント名とパラメーターに合わせてください。

## クエリ

### 1. 特定の時間範囲内 (日単位) に使用された平均ポーション数##1-average-potions-used-over-a-specific-time-range-day-by-day

```undefined
with potionsStats as (
select
EVENT_DATE,
EVENT_JSON:potionsUsed::Integer as potions
FROM EVENTS where EVENT_DATE > CURRENT_DATE-7 and EVENT_DATE < current_date and EVENT_NAME=’dungeonCompleted’
)
select EVENT_DATE as “Date”, round(avg(potions)) as “Average Potions Used”
from potionsStats
group by EVENT_DATE
order by EVENT_DATE
```

ノート:

* `potionsStats` はサブクエリです。

* `potionsUsed` は、ダンジョンで使用されたポーション数をログに記録するために `dungeonCompleted` イベントで送信されるパラメーターです。

* `potions` は、EVENT\_JSON:`potionsUsed`::Integer に付ける名前です

* `7` は、分析する時間範囲です。この場合は、過去 7 日間です

* 行 8 で、以下を呼び出します。

  * X 軸のイベント日付。
  * 整数を取得するために `potions` を端数処理した平均。ただし、小数部分を調べたい場合は削除できます。

* Y 軸の端数処理平均演算にわかりやすい名前 (`Average Potions Used`) を付けます。

### 2. 特定の時間範囲 (合計時間範囲) 内に使用された平均ポーション数##2-average-potions-used-over-a-specific-time-range-total-time-range

ある特定の時点での消費量を確認するためにプレイヤーごとに使用された平均ポーション数を把握するには、以下の例を使用します。

```undefined
with potionsStats as (
select
EVENT_NAME,
EVENT_JSON:potionsUsed::Integer as potions
FROM EVENTS where EVENT_DATE > CURRENT_DATE-7 and EVENT_DATE < current_date and EVENT_NAME='dungeonCompleted'
)
select EVENT_NAME as “Dungeon Completed”, round(avg(potions)) as “Average Potions Used”
from potionStats
group by 1
```

### 3. ダンジョン名ごとの平均使用ポーション数##3-average-potion-used-per-dungeon-name

プレイヤーがゲームでポーションを使用している場所を把握してダンジョンのバランスを取るには、以下の例を使用します。プレイヤーがゲームでポーションを使用している場所を把握してダンジョンのバランスを取るには、以下の例を使用します。

```undefined
with potionsAndDungeons as (
select
EVENT_JSON:dungeonName::string as dungeonName,
EVENT_JSON:potionsUsed::integer as potions
FROM EVENTS where EVENT_DATE > CURRENT_DATE-7 and 
EVENT_NAME='dungeonCompleted'
)
select dungeonName as “Dungeon”, avg(potions) as "Average potions used"
from potionsAndDungeons
group by dungeonName
order by dungeonName
```

ノート:

* `potionsUsed` と `dungeonCompleted` では、前の 2 つのクエリと同じベースを維持します。
* `dungeonCompleted` イベントで送信されるパラメーター (完了したダンジョンの名前をログに記録) である `dungeonName` を使用しています。これは Y 軸で使用されます。

### 4. ダンジョンでのキャラクターの使用割合 (キャラクター名ごと)##4-percentage-of-character-use-in-dungeons-per-character-name

以下の例を使用して、ゲームで最も人気のあるキャラクターを確認します。

```undefined
select
EVENT_JSON:characterName::STRING as character,
((count(EVENT_JSON:characterName::STRING)) / ( select count(*) from events
where EVENT_NAME = 'dungeonCompleted' and EVENT_DATE > current_date-7
)) as percentage
from events
where EVENT_NAME = 'dungeonCompleted' and EVENT_DATE > current_date-7
group by character
order by percentage desc
```

ノート:

* `characterName` を `character` と呼びます。これは `dungeonCompleted` イベントで送信されるパラメーターで、選択したキャラクターをログに記録します。これは X 軸で使用されます。
* 行 3 と 4 で、各キャラクター名の合計数を、完了したダンジョンの合計数で除算して、Y 軸に必要なパーセンテージを取得します。

### 5. ダンジョン名ごとのキャラクター使用回数のピボットテーブル##5-pivot-table-to-count-the-character-used-per-dungeon-name

以下の例を使用して、ダンジョン名ごとのキャラクターの使用回数を明確にします。これは、キャラクターとダンジョンのバランス向上に役立ちます。

```undefined
select
EVENT_JSON:characterName::INTEGER,
EVENT_JSON:dungeonName::STRING,
count(EVENT_JSON:dungeonName::STRING) as dungeonCount
from events
where EVENT_NAME = 'dungeonCompleted'
and EVENT_DATE > current_date-7
group by 1,2
```

ノート:

コメント

* SQL データエクスプローラーはピボットテーブルの可視化をまだ行わないため、結果を csv にエクスポートし、スプレッドシートに可視化を作成する必要があります。
* キャラクター名、ダンジョンパラメーター、およびダンジョン名の個数を呼び出します。
* このクエリを処理した後で、以下を行う必要があります。

1. Share (共有) ボタンを使用して、結果を csv としてエクスポートします。
2. csv ファイルをスプレッドシートに開きます。
3. データからピボットテーブルを作成します。
4. ピボットテーブルからチャートを作成します。


**Frame:**
![](/api/media?file=/analytics/media/images/sql-query-save.png)

\\


**\\:**
!\[]\(/analytics/media/images/copy-of-sql-excel.png)

\\


**\\:**
!\[]\(/analytics/media/images/copy-of-sql-table.png)

\\


**\\:**
!\[]\(/analytics/media/images/copy-of-sql-query-bar.png)
