開発環境
- OS: OS X Lion - Apple
- データベース言語: SQL
- リレーショナルデータベース: MySQL
『初めてのSQL』(Alan Beaulieu 著、株式会社クイープ 翻訳、オライリー・ジャパン、2006年、ISBN4-87311-281-8) の8章(グループ化と集約化), 8.5(練習問題)8-4を解いてみる。
8-4.
入出力結果(Terminal)
$ mysql -u lrngsql -p bank
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7761
Server version: 5.5.24 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show tables;
+----------------+
| Tables_in_bank |
+----------------+
| account |
| branch |
| business |
| customer |
| department |
| employee |
| individual |
| officer |
| product |
| product_type |
| tmp |
| transaction |
+----------------+
12 rows in set (0.00 sec)
mysql> desc account;
+--------------------+----------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+----------------------------------+------+-----+---------+----------------+
| account_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| product_cd | varchar(10) | NO | MUL | NULL | |
| cust_id | int(10) unsigned | NO | MUL | NULL | |
| open_date | date | NO | | NULL | |
| close_date | date | YES | | NULL | |
| last_activity_date | date | YES | | NULL | |
| status | enum('ACTIVE','CLOSED','FROZEN') | YES | | NULL | |
| open_branch_id | smallint(5) unsigned | YES | MUL | NULL | |
| open_emp_id | smallint(5) unsigned | YES | MUL | NULL | |
| avail_balance | float(10,2) | YES | | NULL | |
| pending_balance | float(10,2) | YES | | NULL | |
+--------------------+----------------------------------+------+-----+---------+----------------+
11 rows in set (0.05 sec)
mysql> select product_cd,open_branch_id,avg(avail_balance) average
-> from account
-> group by product_cd,open_branch_id
-> order by avg(avail_balance) desc;
+------------+----------------+--------------+
| product_cd | open_branch_id | average |
+------------+----------------+--------------+
| SBL | 3 | 50000.000000 |
| CHK | 4 | 16963.082458 |
| BUS | 2 | 9345.549805 |
| MM | 1 | 7416.319824 |
| CD | 1 | 5750.000000 |
| CD | 2 | 4000.000000 |
| MM | 3 | 2212.500000 |
| CHK | 2 | 1657.885010 |
| CHK | 3 | 1057.750000 |
| SAV | 1 | 767.770020 |
| SAV | 4 | 387.989990 |
| SAV | 2 | 350.000000 |
| CHK | 1 | 260.719999 |
| BUS | 4 | 0.000000 |
+------------+----------------+--------------+
14 rows in set (0.13 sec)
mysql> quit;
Bye
$
0 コメント:
コメントを投稿