显示下表年度为季度,算出总计
表income
+----+------+---------+-----------+
| id | year | quarter | amount |
+----+------+---------+-----------+
| 1 | 2004 | 1 | 2328.00 |
| 2 | 2004 | 2 | 3822.00 |
| 3 | 2004 | 3 | 7071.00 |
| 4 | 2004 | 4 | 8931.00 |
| 5 | 2005 | 1 | 2633.00 |
| 6 | 2005 | 2 | 3910.00 |
| 7 | 2005 | 3 | 237193.00 |
| 8 | 2005 | 4 | 567444.00 |
| 9 | 2006 | 1 | 12313.00 |
+----+------+---------+-----------+
结果:
+------+----------+---------+-----------+-----------+----------+
| year | 1d | 2d | 3d | 4d | SUM |
+------+----------+---------+-----------+-----------+----------|
| 2004 | 2328.00 | 3822.00 | 7071.00 | 8931.00 | 22152.00 |
| 2005 | 2633.00 | 3910.00 | 237193.00 | 567444.00 | 811180.00|
| 2006 | 12313.00 | NULL | NULL | NULL | 12313.00 |
+------+----------+---------+-----------+-----------+----------+
SQL:
+-------------------------------------------------------------+
CREATE TABLE IF NOT EXISTS `income` (
`id` int(11) NOT NULL auto_increment,
`year` varchar(4) default NULL,
`quarter` int(2) default NULL,
`amount` decimal(15,2) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=10 ;
INSERT INTO `income` VALUES (1, '2004', 1, 2328.00);
INSERT INTO `income` VALUES (2, '2004', 2, 3822.00);
INSERT INTO `income` VALUES (3, '2004', 3, 7071.00);
INSERT INTO `income` VALUES (4, '2004', 4, 8931.00);
INSERT INTO `income` VALUES (5, '2005', 1, 2633.00);
INSERT INTO `income` VALUES (6, '2005', 2, 3910.00);
INSERT INTO `income` VALUES (7, '2005', 3, 237193.00);
INSERT INTO `income` VALUES (8, '2005', 4, 567444.00);
INSERT INTO `income` VALUES (9, '2006', 1, 12313.00);
+-------------------------------------------------------------+
问题:通过income表数据生成结果表信息
方法一:
+-------------------------------------------------------------------------+
|select a.year,1d,2d,3d,4d,sum from (select distinct year from income) a |
|left join |
|(select year,amount as 1d,id from income where quarter=1 group by year)d1|
|on a.year=d1.year |
|left join
|(select year,amount as 2d,id from income where quarter=2 group by year)d2|
|on a.year=d2.year |
|left join |
|(select year,amount as 3d,id from income where quarter=3 group by year)d3|
|on a.year=d3.year |
|left join |
|(select year,amount as 4d,id from income where quarter=4 group by year)d4|
|on a.year=d4.year |
|left join |
|(select year,sum(amount) as sum,id from income group by year)s |
|on a.year=s.year |
+-------------------------------------------------------------------------+
方法二:
+-------------------------------------------------------+
|select year, |
|sum(case when quarter=1 then amount else 0 end) 1d, |
|sum(case when quarter=2 then amount else null end) 2d, |
|sum(case when quarter=3 then amount else null end) 3d, |
|sum(case when quarter=4 then amount else null end) 4d, |
|sum(amount) sum |
|from income group by year; |
+-------------------------------------------------------+
分享到:
相关推荐
2. BreakSqlUI.exe:这可能是工具的图形用户界面(GUI)版本,允许用户通过直观的界面来输入或导入SQL语句,然后进行格式化操作。 3. BreakSqlCmd.exe:这个可能是命令行版本的工具,适合那些喜欢通过命令行工作或者...
SQL语句格式整理器是一款非常实用的工具,它专门针对SQL查询语句的排版混乱问题,通过自动化处理,帮助用户快速将杂乱无章的SQL代码转化为整洁、易读的格式。这样的工具在数据库管理和开发过程中尤为重要,因为它...
SQL跟踪后,用该工具能够快速整理出整洁的SQL,减少人工的复制、帖贴
本文将基于"oracle常用sql整理"的主题,深入探讨Oracle SQL的一些核心概念、语句及其实用技巧,适合初级到中级水平的学习者。 一、SQL基础 SQL是标准化的查询语言,分为DDL(Data Definition Language)、DML(Data...
SQL格式整理工具,而且还可以把SQL语句转换成VB DELPHI C# JAVA里面用的格式
sqllice是一款专为解决SQL代码格式混乱问题而设计的工具,它能够帮助开发人员快速、高效地整理SQL脚本,使其更符合编程规范,提高代码可读性和团队协作效率。无论你是使用Java、Python、C#还是其他语言进行开发,...
自制SQL文整理,非开源,非完整,写得很挫,有使用时限,强烈不建议下载
标题中的“SQL数据库整理工具”指的是专门用于管理和优化SQL Server数据库的应用程序,这些工具通常包含一系列功能,旨在提升数据库性能,确保数据的准确性和一致性。SQL Server是Microsoft开发的一款关系型数据库...
在《SQL》语句整理中,我们涉及了数据库的创建与删除、表的创建与数据操作、查询语句以及聚合函数等核心概念。 首先,创建数据库是数据库管理的基础。在SQL Server 2005中,可以使用`CREATE DATABASE`语句来创建新...
sql语句整理 sql增删改查 更新数据记录 删除数据记录
2. Oracle数据库: - PL/SQL:Oracle的存储过程、函数、触发器和游标。 - 分区表:提高大数据量表的查询效率,如范围分区、列表分区、哈希分区等。 - Materialized Views:物化视图用于快速查询和数据刷新。 - ...
尽管描述和部分内容提供的信息有限,但我们可以基于标题“刚刚整理的SQL语句”来展开一些重要的SQL知识点,帮助读者更好地理解和掌握SQL的基础及进阶用法。 ### SQL简介 SQL(Structured Query Language)是一种...
DBA日常维护SQL整理,涵盖操作系统、存储、数据库各个层面
标题中的“sql跟踪语句整理工具2”表明这是一个专门用于SQL语句跟踪和管理的软件工具,可能是针对数据库开发人员或管理员设计的。这类工具通常能够帮助用户收集、分析和整理在数据库操作过程中产生的SQL语句,以优化...
这个压缩包“SQL整理”很可能包含了关于SQL的各种概念、语法、操作和最佳实践的详细资料。以下是一些可能涵盖在其中的重要知识点: 1. **SQL基本概念**:SQL分为DDL(Data Definition Language,数据定义语言)、...
### 一般SQL语句优化整理 #### 概述 在数据库操作中,SQL查询语句是数据检索的核心,其性能直接影响到应用系统的响应时间和资源消耗。对于一般的SQL语句优化,不仅能够提升查询效率,还能改善用户体验。本文将对...
SQL Server 2005索引碎片整理
SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。以下是对标题和描述中涉及的经典SQL语句的详细解释: 1. **创建数据库**: 使用`CREATE DATABASE`语句来创建一个新的数据库。例如:`...
SQL Server 面试常用 SQL 整理 在 SQL Server 面试中,数据库部分的知识是非常重要的,本文将整理一些常用的 SQL 查询语句,以便更好地应对面试。 数据库设计 在创建数据库时,需要考虑到数据库的设计,包括表...