LoginSignup
3
2

More than 1 year has passed since last update.

Vantage Modules for Jupyterで学ぶSQLの基礎

Posted at

Vantage SQL プラグインの基本

この入門ガイドへようこそ。このガイドでは はじめてのSQLクエリを順を追って説明します。より多くのコマンドを含む充実したノートブックは オンラインの Teradata Vantage Modules for Jupyter でご覧いただけます。

Teradata SQLプラグインの基本的な使い方は「Vantage Modules for Jupyterのナビゲーションと基本的な操作」 を参照してください。

SQL入門

データベースに接続

「local」と言うデータベース接続定義で接続しています。

Jupyter
%connect local

テーブルを参照しないSELECT

実行できる最も簡単なSQLは、例えば2+2のような数式を計算することです。

SQL
SELECT 2+5

はじめの本格的なSQLクエリを実行してみましょう

DBC.TablesVという名前のテーブルから10行を取得することになります。

SQL
SELECT top 10 * FROM DBC.TablesV;

SELECT : 抽出したい列を定義します。
 top 10 は先頭から10行を要求しています。
 * は全ての項目を要求しています。
FROM : ソースデータを指定します。
 DBCと言うデータベースにある TablesVテーブルをソースデータとして利用します。

Tablename と Databasename カラムを DBC.TablesVテーブルから5行取得する場合は以下のように記述します。

SQL
SELECT top 5 TableName, DatabaseName FROM DBC.TablesV;

結果の並び替え(ORDER BY)

SQL
SELECT top 5 TableName, DatabaseName FROM DBC.TablesV ORDER BY TableName;

ORDER BY : 並び替える順番をカラムで指定します。
 TableName の値の順番に結果がソートされます。

項目の降順で並び替えたい場合は項目の後ろに「DES」と記述します。

SQL
SELECT top 5 TableName, DatabaseName FROM DBC.TablesV ORDER BY TableName DESC;

ASC : 昇順(省略可能)
DESC : 降順

フィルタリング

SQL
SELECT top 50 * FROM DBC.TablesV
WHERE TableKind = 'T'
ORDER BY DatabaseName DESC, TableName 

WHERE : フィルタリングの条件を指定します。
この例では TableKind が 'T' の行を抽出しています。

SQL
SELECT top 50 * FROM DBC.TablesV
WHERE (TableKind = 'T' AND CreatorName = 'DBC')
  OR (TableKind = 'T' AND CreatorName = 'SYSADM')
ORDER BY DatabaseName DESC, TableName 

条件は 確固で条件をまとめ ANDとORでつなげる事ができます。

集計

集約条件と集計関数を使いデータを集計できます。

SQL
SELECT top 20 DatabaseName, count(*) as ObjectCount FROM DBC.TablesV
GROUP BY DatabaseName  
ORDER BY DatabaseName

GROUP BY : グルーピング項目を指定します。
この例では DatabaseNameごとの件数を算出しています。
COUNT(*) : レコードの件数を算出します。

この例では、データベース名ごとの TableBytesの最小値、最大値、件数を求めています。
FROM句でSQLを入れ子に確固で囲んでいます。これをサブクエリと言います。
サブクエリの結果をテーブルとみなして、さらにクエリを実行しています。

SQL
SELECT
    TOP 20 databasename,
    MIN(TableBytes)  AS MinSize,
    MAX(TableBytes)  AS MaxSize,
    COUNT(*) AS #Objects_Using_Space
FROM (
    SELECT
        DatabaseName,
        TableName,
        Sum(CurrentPerm) as TableBytes   
        From DBC.TablesizeV
        Group By DatabaseName, Tablename
    ) as Subtotals 
GROUP BY DatabaseName order by DatabaseName;

COUNT(X) : 件数
SUM(X) : Xの値を合計
MIN(X) : Xの値の最小値
MAX(X) : Xの値の最大値

データベースから切断

「local」の接続を切断します。

Jupyter
%disconnect local

おわりに

警告
この本書はTeradata Vantageドキュメンテーションよりトピックに必要な情報を抜粋したものです。掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。正確な内容については、原本をご参照下さい。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。

Teradata Vantageへのお問合せ

Teradata Vantage へのお問合せ

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2