# Data Explorer テーブル結果の書式設定

**URL:** https://meta.discourse.org/t/formatting-data-explorer-table-results/277939
**Category:** Data & reporting
**Tags:** data-explorer, sql-tutorial
**Created:** [2023 年 9 月 5 日午後 11:37 UTC](https://meta.discourse.org/t/formatting-data-explorer-table-results/277939 "2023-09-05T23:37:33Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![SaraDev](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saradev/32/335139_2.png) [@SaraDev](https://meta.discourse.org/u/SaraDev)
#### Post date: [2023 年 9 月 5 日午後 11:37 UTC](https://meta.discourse.org/t/formatting-data-explorer-table-results/277939/1 "2023-09-05T23:37:33Z")

</div>

Discourse では、[Data Explorer](https://meta.discourse.org/t/32566) のクエリ結果の外観を強化できます。

[Data Explorer](https://meta.discourse.org/t/32566) でテーブルの結果をフォーマットするには、SQL クエリで特別な構文を使用します。これにより、Discourse インターフェイス内で、データをより直感的で視覚的に魅力的な方法で表示できます。

## フォーマットされたテーブル結果

クエリ結果をフォーマットするために使用できる構文とデータフィールドの概要を以下に示します。

```sql
SELECT
-- 引用、ユーザーのアバター/ユーザー名、投稿へのリンクを表示するには、次を使用します。
id AS post_id,

-- トピックのタイトル、投稿数、トピックへのリンクを表示するには、次を使用します。
topic_id,

-- 時間を相対形式で表示するには（ホバーすると完全な日付が表示されます）、次を使用します。
updated_at AS reltime$updated_at,

-- ユーザーのアバター/ユーザー名、アクティビティページへのリンクを表示するには、次を使用します。
user_id,

-- グループ名とグループへのリンクを表示するには、次を使用します。
(SELECT id FROM groups WHERE id = 12) AS group_id,

-- カテゴリバッジ、名前、カテゴリへのリンクを表示するには、次を使用します。
(SELECT id FROM categories WHERE id = 22) AS category_id,

-- バッジアイコン、名前、バッジへのリンクを表示するには、次を使用します。
(SELECT id FROM badges WHERE id = 2) AS badge_id,

-- 特別なフォーマットを抑制し、テキストのみを使用するには、次を使用します。
topic_id AS text$topic_id_text,

-- 値を HTML としてレンダリングするには、次を使用します。
'<h2>hello</h2>' AS html$html,

-- 列を URL として扱う（`xyz_url` という名前の場合）、リンク名を `name,https://example.com` の形式で名前を付けるには、次を使用します。
'Meta,https://meta.discourse.org' AS somecolumnname_url

FROM posts
WHERE topic_id = 32566
LIMIT 1

```

上記の構文を使用してフォーマットされた場合のクエリ結果の例を次に示します。

 ![Formatted Query Results](https://global.discourse-cdn.com/meta/original/4X/7/6/c/76c47cf29c58a36cccd70dfa154823e7684315ad.png)

## 個別の例

これらの機能の一部を詳しく見ていきましょう。

### 投稿とトピックのリンク

`AS post_id` を使用して `post_id` を引用、ユーザーアバター/ユーザー名、投稿へのリンクとして表示できます。また、`AS topic_id` を使用して `topic_id` をトピックタイトル、投稿数、トピックへのリンクとして表示することもできます。

_例_:

```sql
SELECT
    p.id AS post_id
FROM
    posts p

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/5/3/e53d4bd368d2767119c15f36cbd03740b624e697.png)

```plaintext
SELECT
    t.id AS topic_id
FROM
    topics t

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/a/f/2af591851e1ed340eeafceab402ce92accac2291.png)

### 相対時間

`AS reltime$updated_at` ステートメントは、タイムスタンプを相対形式で表示します。この形式で表示されるタイムスタンプにカーソルを合わせると、完全な日付も表示されます。

_例_:

```sql
SELECT
    id,
    updated_at AS reltime$updated_at
FROM
    posts
ORDER BY updated_at DESC

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/f/2/2f23655f95fbca631c82d3a6bd7ef3e862b5c65e.png)

### ユーザー、グループ、カテゴリ、バッジのリンク

`AS user_id`、`AS group_id`、`AS category_id`、`AS badge_id` を使用して、ユーザーアバター/ユーザー名、グループ名、カテゴリ名、バッジアイコン/名前を表示でき、すべてそれぞれのページにリンクされます。

_例_:

```sql
SELECT
    u.id AS user_id
FROM
    users u

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/a/5/3a5fe68d98a9369a7be9afa9bf3cd772744b48fc.png)

```sql
SELECT
    g.id AS group_id
FROM
    groups g

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/7/f/d/7fd2c612ea83adf87ce2e0a2f751726b11095ebf.png)

```sql
SELECT
    c.id AS category_id
FROM
    categories c

```

 ![](https://global.discourse-cdn.com/meta/original/4X/f/5/4/f5482b5b185a996eddccd3aaa787357b4472ad12.png)

```sql
SELECT
    b.id as badge_id
FROM
    badges b

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/4/a/54af7e80750ff4f03866b51c3b1f16ed190d88c7.png)

### テキストと HTML のレンダリング

`AS html$html` を使用して HTML 結果をレンダリングされた HTML として表示できます。また、`AS text$column_name` を使用して特別なフォーマットを抑制し、テキストのみを使用することもできます。

_例_:

```sql
SELECT
    topic_id,
    cooked AS html$html,
    topic_id AS text$topic_id_text
FROM
    posts
GROUP BY topic_id, cooked

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/f/8/e/f8e0fff804fe79b0bdbca66047bf3418cda9e921.png)

### URL のレンダリング

列名を `xyz_url` とすると、URL として扱われます。また、`name,https://example.com` の形式で URL リンクに名前を付けることもできます。

_例_:

```sql
SELECT
    u.username,
    'https://example_site.com/u/' || u.username || '/summary' AS profile_url,
    'Profile Page,https://example_site.com/u/' || u.username || '/summary' AS profile_page_url
FROM
    users u
WHERE u.username LIKE 'anon%'

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/7/b/7/7b7e004743cb28be6455616a97a6df8d760aeba7.png)

## 自動フォーマット

[Data Explorer](https://meta.discourse.org/t/32566) には、自動的にフォーマットされる特定の SQL フィールドもあります。これらには以下が含まれます。

### リンク

URL を含むフィールドは、クリック可能なリンクとして自動的にフォーマットされます。

_例_:

```sql
SELECT
    id,
    remote_url
FROM remote_themes

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/2/4/0242987edc8028d92b1fe9ef39ed43f4c91cabbc.png)

### ID

ID（投稿 ID、トピック ID、ユーザー ID など）は、外部テーブルで参照される場合、多くの場合、それぞれのエンティティに自動的にリンクされます。

_例_:

```sql
SELECT
    user_id
FROM
    topics

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/d/b/2/db2f0bc4442095892b512f36aa4e1ffdcd8a9433.png)

## このシリーズのその他のトピック

- [Data Explorer チュートリアル - パート 1 - 最初のクエリの作成](https://meta.discourse.org/t/data-explorer-tutorial-part-1-writing-your-first-query/277925)
- [Data Explorer チュートリアル - パート 2 - Discourse SQL の基本](https://meta.discourse.org/t/data-explorer-tutorial-part-2-discourse-sql-basics/277927)
- [Data Explorer クエリでのパラメータの使用](https://meta.discourse.org/t/utilizing-parameters-in-data-explorer-queries/277934)
- **このトピック**
