某图书馆收藏有书籍具有不同的出版年份,管理员需要做一下统计工作:

(1)每一年书籍的数目,如: 2000年有10本书, 2001年有5本书...

(2)每一种书籍的数目,如: 西游记有10本, 三国演义有5本...

(3)每一种书不同年份对应的数目, 如2本西游记在2000出版的,8本在2008年出版...

(4)每一年不同种类书籍的数目,如2000年出版的西游记有2本,三国演义有5本...

(5)某一种书不同年份对应的数目(与(3)的区别在于,(3)需要统计所有的书籍,(5)是统计指定的某一种书籍) 

新建表与准备数据(books.sql)

create table `books`(
    id int not null auto_increment,
    title varchar(50) not null,
    year int not null,
    primary key(id)
    )Engine=InnoDB default charset=utf8;

建表:

>>> (echo 'use test'; cat books.sql) | mysql - u root --password  密码;

数据如下:

+----+--------------+------+
| id | title        | year |
+----+--------------+------+
|  1 | 三国演义     | 2000 |
|  2 | 三国演义     | 2000 |
|  3 | 三国演义     | 2000 |
|  4 | 三国演义     | 2010 |
|  5 | 三国演义     | 2010 |
|  6 | 红楼梦       | 2003 |
|  7 | 红楼梦       | 2003 |
|  8 | 红楼梦       | 2003 |
|  9 | 红楼梦       | 2003 |
| 10 | 红楼梦       | 2003 |
| 11 | 红楼梦       | 2016 |
| 12 | 红楼梦       | 2016 |
| 13 | 红楼梦       | 2016 |
| 14 | 红楼梦       | 2012 |
| 15 | 红楼梦       | 2015 |
| 16 | 红楼梦       | 2015 |
| 17 | 水浒传       | 2001 |
| 18 | 水浒传       | 2001 |
| 19 | 水浒传       | 2001 |
| 20 | 水浒传       | 2003 |
| 21 | 水浒传       | 2004 |
| 22 | 水浒传       | 2005 |
| 23 | 水浒传       | 2015 |
| 24 | 水浒传       | 2015 |
| 25 | 西游记       | 2015 |
| 26 | 西游记       | 2015 |
| 27 | 西游记       | 2015 |
| 28 | 西游记       | 2015 |
| 29 | 西游记       | 2012 |
| 30 | 西游记       | 2012 |
| 31 | 西游记       | 2014 |
| 32 | 西游记       | 2014 |
| 33 | 西游记       | 2011 |
| 34 | 西游记       | 2011 |
+----+--------------+------+
34 rows in set (0.00 sec)
View Code

相关文章: