DB

各DB上でgroup by文を試してみた(データ準備編)

今回は、Oracle・MySQL・PostgreSQL・SQL Serverの各データベース上でのgroup by文を試すための、salesテーブルとデータ作成内容について共有する。

前提条件

Windows端末上に、Oracle・MySQL・PostgreSQL・SQL Serverをそれぞれインストール済であること。

Oracle・MySQL・PostgreSQLのインストール手順は下記記事を参照のこと。

Windows端末にMySQL、PostgreSQL、Oracleをインストールしてみた今回はいろいろな種類のデータベースを使ってみたかったので、Windows端末に、MySQL、PostgreSQL、Oracleそれぞれの...

また、SQL Serverのインストール手順は下記記事を参照のこと。

SQL Serverのデータ分析を行う環境構築を行った(1)今回は、SQL Serverのデータ分析を行う環境構築として、SQL Server・SQL Server Management Stud...

やってみたこと

  1. Oracleの場合の実行結果
  2. MySQLの場合の実行結果
  3. PostgreSQLの場合の実行結果
  4. SQL Serverの場合の実行結果

 

Oracleの場合の実行結果

1) テーブル作成SQL実行結果は以下の通り

CREATE TABLE sales(
    sale_date date NOT NULL
  , product_name varchar2(50) NOT NULL
  , place_name varchar2(12) NOT NULL
  , sales_amount number(6) NOT NULL
)
Oracle_createTable実行

2) データ追加SQL実行結果は以下の通り

insert into sales values (TO_DATE('2019-05-10', 'YYYY-MM-DD'), 'ジーパン', '東京', 1000);
insert into sales values (TO_DATE('2019-05-10', 'YYYY-MM-DD'), 'ジーパン', '大阪', 2000);
insert into sales values (TO_DATE('2019-05-10', 'YYYY-MM-DD'), '革靴', '大阪', 1200);
insert into sales values (TO_DATE('2019-05-10', 'YYYY-MM-DD'), '革靴', '名古屋', 2400);
insert into sales values (TO_DATE('2019-05-10', 'YYYY-MM-DD'), 'ボールペン', '東京', 100);
insert into sales values (TO_DATE('2019-05-11', 'YYYY-MM-DD'), 'ジーパン', '東京', 2000);
insert into sales values (TO_DATE('2019-05-11', 'YYYY-MM-DD'), 'ボールペン', '名古屋', 500);
insert into sales values (TO_DATE('2019-05-12', 'YYYY-MM-DD'), 'ジーパン', '大阪', 1000);
commit;
Oracle_insertData実行

3) 作成後のテーブルのSELECT結果は以下の通り

select * from sales order by sale_date, product_name, place_name
Oracle_selectData実行



MySQLの場合の実行結果

1) テーブル作成SQL実行結果は以下の通り

CREATE TABLE world.sales(
      sale_date datetime NOT NULL
    , product_name varchar(50) NOT NULL
    , place_name varchar(12) NOT NULL
    , sales_amount int NOT NULL
)
MySQL_createTable実行

2) データ追加SQL実行結果は以下の通り

insert into world.sales values ('2019-5-10', 'ジーパン', '東京', 1000);
insert into world.sales values ('2019-5-10', 'ジーパン', '大阪', 2000);
insert into world.sales values ('2019-5-10', '革靴', '大阪', 1200);
insert into world.sales values ('2019-5-10', '革靴', '名古屋', 2400);
insert into world.sales values ('2019-5-10', 'ボールペン', '東京', 100);
insert into world.sales values ('2019-5-11', 'ジーパン', '東京', 2000);
insert into world.sales values ('2019-5-11', 'ボールペン', '名古屋', 500);
insert into world.sales values ('2019-5-12', 'ジーパン', '大阪', 1000);
commit;
MySQL_insertData実行

3) 作成後のテーブルのSELECT結果は以下の通り

select * from world.sales order by sale_date, product_name, place_name
MySQL_selectData実行



PostgreSQLの場合の実行結果

1) テーブル作成SQL実行結果は以下の通り

CREATE TABLE sales(
      sale_date timestamp NOT NULL
    , product_name varchar(50) NOT NULL
    , place_name varchar(12) NOT NULL
    , sales_amount integer NOT NULL
)
PostgreSQL_createTable実行

2) データ追加SQL実行結果は以下の通り

insert into sales values ('2019-05-10', 'ジーパン', '東京', 1000);
insert into sales values ('2019-05-10', 'ジーパン', '大阪', 2000);
insert into sales values ('2019-05-10', '革靴', '大阪', 1200);
insert into sales values ('2019-05-10', '革靴', '名古屋', 2400);
insert into sales values ('2019-05-10', 'ボールペン', '東京', 100);
insert into sales values ('2019-05-11', 'ジーパン', '東京', 2000);
insert into sales values ('2019-05-11', 'ボールペン', '名古屋', 500);
insert into sales values ('2019-05-12', 'ジーパン', '大阪', 1000);
PostgreSQL_insertData実行

3) 作成後のテーブルのSELECT結果は以下の通り

select * from sales order by sale_date, product_name, place_name
PostgreSQL_selectData実行



SQL Serverの場合の実行結果

1) テーブル作成SQL実行結果は以下の通り

CREATE TABLE dbo.sales(	
      sale_date datetime NOT NULL
    , product_name nvarchar(50) NOT NULL
    , place_name nvarchar(12) NOT NULL
    , sales_amount [int] NOT NULL
)
SQLServer_createTable実行

2) データ追加SQL実行結果は以下の通り

insert into dbo.sales values ('2019-5-10', N'ジーパン', N'東京', 1000);
insert into dbo.sales values ('2019-5-10', N'ジーパン', N'大阪', 2000);
insert into dbo.sales values ('2019-5-10', N'革靴', N'大阪', 1200);
insert into dbo.sales values ('2019-5-10', N'革靴', N'名古屋', 2400);
insert into dbo.sales values ('2019-5-10', N'ボールペン', N'東京', 100);
insert into dbo.sales values ('2019-5-11', N'ジーパン', N'東京', 2000);
insert into dbo.sales values ('2019-5-11', N'ボールペン', N'名古屋', 500);
insert into dbo.sales values ('2019-5-12', N'ジーパン', N'大阪', 1000);
SQLServer_insertData実行

3) 作成後のテーブルのSELECT結果は以下の通り

select * from dbo.sales order by sale_date, product_name, place_name
SQLServer_selectData実行