読者です 読者をやめる 読者になる 読者になる

落書きノート

ふと自分が気になった事を書いてます

SQLで問題を解く

ここまで書いておいて何ですが、SQLは何もOracleだけしかできないというわけではなく、MariaDBPostgreSQLなどのデータベースでも出来ます。テーブル設計プログラムがあればselect文を試せます。無い場合は自分で設計するしかありません。参考書にやり方載ってると思いますのでそれを見てもらえれば…。

SQL> select deptno,to_char(round(avg(sal), 0), '999,999') 平均給与 from emp group by deptno having count(deptno) >= 4 order by deptno;

    DEPTNO 平均給与
---------- --------
    20    2,175
    30    1,567

SQL> select job,min(sal),max(sal) from emp group by job order by max(sal) desc;

JOB     MIN(SAL)   MAX(SAL)
--------- ---------- ----------
PRESIDENT   5000      5000
ANALYST     3000      3000
MANAGER     2450      2975
SALESMAN    1250      1600
CLERK        800      1300

SQL> select ename,to_char(hiredate,'YYYY"年"MM"月"DD"日"') 採用年月日 from emp where hiredate <= '1981-04-01';

ENAME      採用年月日
---------- -----------------
SMITH      19801217日
ALLEN      19810220日
WARD       19810222日

SQL> select deptno 部門番号,count(deptno) 所属人数,min(sal) 最低給与,avg(sal) 平均給与,max(sal) 最高給与,sum(sal) 給与総額 from emp group by deptno order by deptno;

  部門番号   所属人数   最低給与   平均給与   最高給与   給与総額
---------- ---------- ---------- ---------- ---------- ----------
    10     3      1300 2916.66667    5000      8750
    20     5       800       2175     3000     10875
    30     6       950 1566.66667    2850      9400

SQL> select job,count(job) 社員数,sum(sal) 給与総額 from emp group by job order by sum(sal) desc;

JOB           社員数   給与総額
--------- ---------- ----------
MANAGER        3      8275
ANALYST        2      6000
SALESMAN       4      5600
PRESIDENT      1      5000
CLERK          4      4150

SQL> select max(length(address)) 住所の最大文字数 from customer;

住所の最大文字数
----------------
          11

SQL> select address || ' ' || cust_name || '御中' 顧客一覧 from customer;

顧客一覧
-------------------------------------------------------------------
東京都足立区古千谷本町 古千谷商店御中
東京都千代田区大手町 千代田商事御中
東京都足立区竹の塚 竹の塚マート御中
埼玉県春日部市竹里 竹里屋御中
大阪府大阪市西区北堀江 西日本商会御中

SQL> select cust_id 顧客ID,cust_name 顧客名 from customer where cust_name like '竹%';

    顧客ID 顧客名
---------- --------------------
         3 竹の塚マート
         4 竹里屋