とりあえずBigQueryで、サンプルテーブル(emp/dept)が使いたい


概要

  • 雑でもいいので、とりあえず
    • BQでサンプルテーブル(emp/dept)が使いたい。という人向けのDDLとDMLです。
  • 注意点は、備考を参照

SQL

CREATE TABLE `<dataset_id>.dept`(
  dept_no NUMERIC,
  dept_name STRING,
  location STRING
);

CREATE TABLE `<dataset_id>.emp`(
  emp_no NUMERIC,
  emp_name STRING,
  job STRING,
  manager_no NUMERIC,
  hiring_date DATE,
  salary NUMERIC,
  commission NUMERIC,
  dept_no NUMERIC
);

INSERT INTO `<dataset_id>.dept` VALUES(10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO `<dataset_id>.dept` VALUES(20, 'RESEARCH', 'DALLAS');
INSERT INTO `<dataset_id>.dept` VALUES(30, 'SALES', 'CHICAGO');
INSERT INTO `<dataset_id>.dept` VALUES(40, 'OPERATIONS', 'BOSTON');

INSERT INTO `<dataset_id>.emp` VALUES(7839, 'KING',   'PRESIDENT', null, DATE(1981,11,17), 5000, null, 10);
INSERT INTO `<dataset_id>.emp` VALUES(7698, 'BLAKE',  'MANAGER',   7839, DATE(1981,05,01), 2850, null, 30);
INSERT INTO `<dataset_id>.emp` VALUES(7782, 'CLARK',  'MANAGER',   7839, DATE(1981,06,09), 2450, null, 10);
INSERT INTO `<dataset_id>.emp` VALUES(7566, 'JONES',  'MANAGER',   7839, DATE(1981,04,02), 2975, null, 20);
INSERT INTO `<dataset_id>.emp` VALUES(7788, 'SCOTT',  'ANALYST',   7566, DATE(1987,06,13), 3000, null, 20);
INSERT INTO `<dataset_id>.emp` VALUES(7902, 'FORD',   'ANALYST',   7566, DATE(1981,12,03), 3000, null, 20);
INSERT INTO `<dataset_id>.emp` VALUES(7369, 'SMITH',  'CLERK',     7902, DATE(1980,12,17),  800, null, 20);
INSERT INTO `<dataset_id>.emp` VALUES(7499, 'ALLEN',  'SALESMAN',  7698, DATE(1981,02,20), 1600,  300, 30);
INSERT INTO `<dataset_id>.emp` VALUES(7521, 'WARD',   'SALESMAN',  7698, DATE(1981,02,22), 1250,  500, 30);
INSERT INTO `<dataset_id>.emp` VALUES(7654, 'MARTIN', 'SALESMAN',  7698, DATE(1981,09,28), 1250, 1400, 30);
INSERT INTO `<dataset_id>.emp` VALUES(7844, 'TURNER', 'SALESMAN',  7698, DATE(1981,09,08), 1500,    0, 30);
INSERT INTO `<dataset_id>.emp` VALUES(7876, 'ADAMS',  'CLERK',     7788, DATE(1987,06,13), 1100, null, 20);
INSERT INTO `<dataset_id>.emp` VALUES(7900, 'JAMES',  'CLERK',     7698, DATE(1981,12,03),  950, null, 30);
INSERT INTO `<dataset_id>.emp` VALUES(7934, 'MILLER', 'CLERK',     7782, DATE(1982,01,23), 1300, null, 10);

備考

  • dataset_idを指定していますが、必要に応じ、project_idも指定して下さい。
  • BQでは、INSERT文連発は推奨されていないです。
    • 環境によっては too many table update operations for this table. のエラーが出ます
    • 出たら、INSERT文のどこかで実行が止まっているはずなのでその行から再実行して下さい。
  • SQL文も下記直しています。
    • データ型をBQでも実行できる型に変更(NUMERIC,STRING)
    • 列名を理解できる表記に変更(ename -> emp_name,comm -> commission等)