🧚 お知らせ!Beekeeper Studioは高速でモダンなオープンソースのデータベースGUIです ダウンロード
2024年7月6日 著者: Matthew Rathbone

TOPキーワードを使ってTeradataで行数を制限する

TOPキーワードは、Teradataで行数を制限する最もシンプルな方法です。返す行数を正確に指定できます。

構文:

SELECT TOP n column1, column2, ...
FROM table_name;

例:

employeesというテーブルがあり、先頭10行を取得したいとします。

SELECT TOP 10 employee_id, first_name, last_name
FROM employees;

出力結果:

 employee_id | first_name | last_name
-------------|------------|-----------
 1           | John       | Doe
 2           | Jane       | Smith
 ...         | ...        | ...
 10          | Alice      | Brown

SAMPLEキーワードを使う

Teradataで行数を制限するもう1つの方法がSAMPLEキーワードです。先頭の行ではなくランダムなサンプルが必要な場合に特に便利です。

構文:

SELECT column1, column2, ...
FROM table_name
SAMPLE n;

例:

employeesテーブルから5行をランダムに取得するには:

SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 5;

出力結果:

 employee_id | first_name | last_name
-------------|------------|-----------
 7           | Emma       | Johnson
 3           | Robert     | Lee
 ...         | ...        | ...
 12          | Olivia     | Davis

SAMPLEで割合を指定する

SAMPLE句では、割合で行数を制限することもできます。

構文:

SELECT column1, column2, ...
FROM table_name
SAMPLE n PERCENT;

例:

employeesテーブルから10%の行をサンプルとして取得します:

SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 10 PERCENT;

出力結果:

 employee_id | first_name | last_name
-------------|------------|-----------
 2           | Jane       | Smith
 9           | Mark       | Wilson
 ...         | ...        | ...
 22          | Lucas      | Adams

QUALIFYとROW_NUMBER()を使う

より複雑なケースでは、QUALIFY句とROW_NUMBER()を組み合わせて使えます。この方法では、追加のフィルターや条件を適用できます。

構文:

SELECT column1, column2, ...
FROM table_name
QUALIFY ROW_NUMBER() OVER (PARTITION BY partition_column ORDER BY sort_column) <= n;

例:

各部署で給与が高い上位5人の従業員を取得します:

SELECT department_id, employee_id, salary
FROM employees
QUALIFY ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) <= 5;

出力結果:

 department_id | employee_id | salary
---------------|-------------|--------
 1             | 101         | 120000
 1             | 102         | 115000
 ...           | ...         | ...
 2             | 201         | 95000
 ...           | ...         | ...

まとめ

Teradataで行数を制限するにはさまざまな方法があり、それぞれ適した場面が異なります。TOPキーワードは単純な制限に手軽に使え、SAMPLEはランダムな抽出や割合に基づくサンプリングを提供します。より複雑な要件には、ROW_NUMBER()とQUALIFYの組み合わせにより、特定の条件に基づいた強力な行の制限が可能です。これらのテクニックを理解すれば、Teradataで大規模なデータセットをより効率的かつ効果的に扱えるようになります。

こちらの記事もおすすめです:

Beekeeper Studioは無料のオープンソースのデータベースGUIです

これまで使った中で最高のSQLクエリ&エディタツールです。データベースの管理に必要なものがすべて揃っています。 - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studioは高速で直感的、そして使いやすいツールです。多数のデータベースに対応し、Windows、Mac、Linuxで快適に動作します。

BeekeeperのLinux版は100%フル機能。手抜きも機能の妥協も一切ありません。

Beekeeper Studio利用者の声

★★★★★
「Beekeeper Studioで以前のSQLワークフローを完全に置き換えました。高速で直感的で、データベース作業がまた楽しくなりました。」
— Alex K.、データベース開発者
★★★★★
「多くのデータベースGUIを試してきましたが、Beekeeperは機能とシンプルさのバランスが完璧です。とにかくちゃんと動きます。」
— Sarah M.、フルスタックエンジニア