スクリプトガイド > JMPの拡張 > SQLクエリーの記述
公開日: 04/01/2021

SQLクエリーの記述

Query()関数を使うと、SQLステートメントでJMPデータテーブルを操作できます。SQLステートメントは、Query()で唯一必須の引数です。通常、SQLステートメントの多くはデータテーブルを参照します。SQLステートメントが参照するデータテーブルは、テーブル参照の引数を使って渡されます。

テーブル参照の引数として、データテーブル参照を使用できます(次の例のdt)。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
result = Query( dt, "SELECT * FROM 'Big Class' WHERE 年齢 > 14;" );

上の例のSQLステートメントは、JMPデータテーブルの名前を含んでいます。データテーブルのパスが長く、SQLステートメントで別名を使用したい場合があります。別名を使用するには、テーブル参照をTable()引数として渡します。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
result = Query( Table( dt, "t1" ), "SELECT * FROM t1 WHERE 年齢 > 14;" );

Table()でデータテーブルの別名を使うことで、複数のクエリーで名前の異なるテーブルが使用されている場合でもSQLステートメントを書き換える必要がなくなります。

プライベートデータテーブルと非表示のデータテーブル

Query()で作成されるデータテーブルをプライベートまたは非表示にしたい場合は、PrivateまたはInvisibleQuery()の引数として渡します。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
result = Query( dt, invisible, "SELECT * FROM 'Big Class' WHERE 年齢 > 14;" );

単一の値を戻す

Query()関数は、通常、クエリーの結果としてJMPデータテーブルを戻します。しかし、単一の値を戻すSQLクエリーを記述した場合は、その値が入ったJMPデータテーブルが戻されるより、値だけが戻された方が便利です。値だけが戻されるようにするには、Scalar引数を渡します。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
result = Query(
	Table( dt, "t1" ),
	Scalar,
	"SELECT AVG([身長(インチ)]) FROM t1 WHERE 年齢 > 14;"
);

上のクエリーは、15歳以上の学生の平均身長である65(インチ)を戻します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).