简单Sql语句统计每年每个月的数据,每个月为数据的每列,简单SQL练习

有一张表,数据如下

请写出结果为以下的SQL语句。

在mysql中创建表

CREATE TABLE `aa` (
  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT ‘书籍编号‘,
  `year` varchar(4) NOT NULL DEFAULT ‘‘ COMMENT ‘年‘,
  `month` varchar(2) NOT NULL DEFAULT ‘0‘ COMMENT ‘月份‘,
  `mount` double DEFAULT NULL COMMENT ‘数量‘,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据:

insert into aa(year,month,mount) values(2011,1,1.1),(2011,2,1.2),(2011,3,1.3),(2011,4,1.4);
insert into aa(year,month,mount) values(2012,1,2.1),(2012,2,2.2),(2012,3,2.3),(2012,4,2.4);
insert into aa(year,month,mount) values(2013,1,3.1),(2013,2,3.2),(2013,3,3.3),(2013,4,3.4);
insert into aa(year,month,mount) values(2014,1,4.1),(2014,2,4.2),(2014,3,4.3),(2014,4,4.4);

查询语句为:

select t2.year,(select t1.mount from aa t1 where t1.year = t2.year and t1.month = 1) m1,
(select t1.mount from aa t1 where t1.year = t2.year and t1.month = 2) m2,
(select t1.mount from aa t1 where t1.year = t2.year and t1.month = 3) m3,
(select t1.mount from aa t1 where t1.year = t2.year and t1.month = 4) m4 from
aa t2 group by t2.year order by t2.year;

完毕。

备注:简单的实现了一下,若您有更好的,若方便可以共享一下;若有什么错误,请指出,谢谢!

时间: 2024-10-10 06:41:48

简单Sql语句统计每年每个月的数据,每个月为数据的每列,简单SQL练习的相关文章

SQL语句统计每天、每月、每年的 数据

1.每年 select year(ordertime) 年, sum(Total) 销售合计 from 订单表 group by year(ordertime) 2.每月 select year(ordertime) 年, month(ordertime) 月, sum(Total) 销售合计 from 订单表 group by year(ordertime), month(ordertime 3.每日 select year(ordertime) 年, month(ordertime) 月,

使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作

使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作 Hive Impala HBase HiveQL 大数据 使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作 〇.摘要 一.基础环境 二.数据存储在HBase中,使用Hive执行SQL语句 Ⅰ.创建Hive外部表 Ⅱ.从HBase读 Ⅲ.向HBase写 三.数据存储在HBase中,使用Impala执行SQL语句 Ⅰ.从HBase读 Ⅱ.向HBase写 四.综上所述 〇.摘要 Hive是基于Hadoop

mysql进阶 十九 SQL语句如何精准查找某一时间段的数据

SQL语句如何精准查找某一时间段的数据 在项目开发过程中,自己需要查询出一定时间段内的交易.故需要在sql查询语句中加入日期时间要素,sql语句如何实现? SELECT * FROM lmapp.lm_bill where tx_time Between '2015-12-20' And '2015-12-31'; 仔细研究还是能够发现一些细节性的问题的. SQL语句1 SELECT * FROM lmapp.lm_bill where merch_uid='S18853883587' AND 

数据库SQL语句学习笔记(3)-排序检索数据

1.排序数据 如果不排序,数据一般将以它在底层表中出现的顺序显示,这有可能是数据最初添加到表中的顺序.但是如果数据随后进行过更新或删除,这个顺序就会受到DBMS重用回收存储空间的方式的影响. 子句:SQL语句由子句构成,有些子句是必须的,有些则是可选的.一个子句通常是由关键字加上所提供的数据组成.例如我们上个笔记中提到的SELECT语句中的FROM子句. 排序需要用到ORDER BY子句 SELECT prod_name FROM Products ORDER BY prod_name; 一定要

SQL语句基础之 管理数据库,表 和 数据

MySQL中的基本sql语句 MySQL中主要有三个大的对象,第一个是数据库,有了数据库后,我们才能在数据库里面建表,因为Mysql是关系数据库,它的数据都会以记录的形式存到表里,所以第二个是表,然后第三个才是数据.下面我们根据这个关系来学习一下mysql中的sql语句~ Sql语句管理数据库 1.查看Mysql中有哪些数据库 语句:show databases 2.创建一个数据库 语句: create database vmaxtam default character set utf8;--

【51CTO/BBS】SQL 语句中有没有清除控制台显示(返回)数据的命令啊??

原帖地址:http://bbs.51cto.com/viewthread.php?tid=1133377&extra=&page=1 问题描述: 随着学习的进步,SQL语句变得越来越复杂. 一个SQL存储过程中,很可能调用多个存储过程.导致返回的数据凌乱不堪.   请教如何清除掉,这些不需要的返回显示的数据. 特别是用 其它编程语言调用SQL时,会导致无法获取到正确的返回数据集...... 例如:         [存储过程A]有多个SELECT语句,           SELECT @

SQL语句中使用 with 递归实现表中数据树状显示

在开发过程中会遇到很多实现树状的功能,之前为了实现数据的树状显示一般都是通过程序里面的递归实现,今天试了一下通过sql语句实现具体如下: 表名:DeptInfo 字段:DeptId(部门编号),DeptName(部门名称),DeptUpId(部门上级ID),DeptPath(部门层级) 从DeptUpId和DeptPath中可看出表数据可能很乱: 为了实现表中数据树状显示,条例清晰具体代码实现如下: with dept as(select DeptId,DeptUpId from DeptInf

SQL语句oracle中如何插入Date类型的数据

转:http://chwshuang.iteye.com/blog/933926 在开发的时候,经常要写条SQL语句将信息插入表中,插入的数据如果字段是date类型,就必须将date类型转换成字符串String类型在通过sql语句插入数据库.这是我字段唯一的方法,如果有高人请另赐教! 我的解决方法是用oracle中的to_date()方法,具体看下面的例子 Oracle中插入date数据代码 insert into news(ID,MSG,SEND_TIME,TIMER) Oracle中插入da

使用SQL语句查询某记录的前后N条数据

id是指当前数据tb_id参数 方法一: string preSql = "select top 1 * from table where tb_id < " + id + " order by tb_id DESC" string nextSql = "select top 1 * from table where tb_id > " + id + " order by tb_id ASC" 方法二: strin