SQL语法集锦一:SQL语句实现表的横向聚合
本文转载:http://www.cnblogs.com/lxblog/archive/2012/09/29/2708128.html
问题描述:
假如有一表结构和数据如下:
| C1 | C2 | C3 | C4 | C5 |
| 1 | 2 | 6 | 3 | 4 |
| 2 | 2 | 3 | 4 | 5 |
| 0 | 3 | 6 | 2 | 8 |
经过sql查询后输出的结果集为:(字段后面增加聚合[最大值] [最小值] [>=5的值个数])
| C1 | C2 | C3 | C4 | C5 | Max | Min | Count(>=5) |
| 1 | 2 | 6 | 3 | 4 | 6 | 1 | 1 |
| 2 | 2 | 3 | 4 | 5 | 5 | 2 | 1 |
| 0 | 3 | 6 | 2 | 8 | 8 | 2 | 2 |
实现该结果的SQL 脚本如下:

/*
作 者:<Rising_Sun>
创建日期:<2012-9-29>
功 能:<实现表横向聚合>
*/
DECLARE @t TABLE(C1 int,C2 int,C3 int,C4 int,C5 int)
INSERT INTO @t VALUES(1,2,6,3,4)
INSERT INTO @t VALUES(2,2,3,4,5)
INSERT INTO @t VALUES(0,3,6,2,8) --查询
SELECT *,
[min] = (
SELECT MIN(v) FROM(
SELECT v=A.C1 UNION SELECT v=A.C2 UNION SELECT v=A.C3 UNION SELECT v=A.C4 UNION SELECT v=A.C5
)B),
[max] = (
SELECT MAX(v) FROM(
SELECT v=A.C1 UNION SELECT v=A.C2 UNION SELECT v=A.C3 UNION SELECT v=A.C4 UNION SELECT v=A.C5
)B),
[count>=5] = (
SELECT COUNT(*) FROM(
SELECT v=A.C1 UNION SELECT v=A.C2 UNION SELECT v=A.C3 UNION SELECT v=A.C4 UNION SELECT v=A.C5
)B WHERE v>=5)
FROM @t A

执行结果如下图所示:

SQL语法集锦一:SQL语句实现表的横向聚合的更多相关文章
- SQL语法基础之DROP语句
SQL语法基础之DROP语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看DROP帮助信息 mysql> ? DROP Many help items for yo ...
- SQL语法基础之ALTER语句
SQL语法基础之ALTER语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看ALTER的帮助信息 mysql> ? ALTER Many help items fo ...
- SQL语法基础之INSEART语句
SQL语法基础之INSEART语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.查看INSERT方法的帮助信息 mysql> ? INSERT ...
- SQL语法基础之UPDATE语句
SQL语法基础之UPDATE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看UPDATE语句的帮助信息 1>.查看UPDATE的帮助信息 mysql> ? ...
- SQL语法基础之DELETE语句
SQL语法基础之DELETE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.查看DELETE的帮助信息 mysql> ? DELETE Na ...
- SQL语法基础之CREATE语句
SQL语法基础之CREATE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.使用“?”来查看MySQL命令的帮助信息 mysql> ? CR ...
- SQL语法集锦三:合并列值与分拆列值
本文转载http://www.cnblogs.com/lxblog/archive/2012/09/29/2708724.html 在SQL中分拆列值和合并列值老生常谈了,从网上搜刮了一下并记录下来, ...
- SQL语法集锦一:显示每个类别最新更新的数据
本文转载http://www.cnblogs.com/lxblog/archive/2012/09/28/2707504.html (1)显示每个类别最新更新的数据 在项目中经常遇到求每个类别最新显示 ...
- mysql中SQL执行过程详解与用于预处理语句的SQL语法
mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...
随机推荐
- WPF学习(一)控件的公共属性
Visiblity控件是否可见:枚举类型:Visible表示可见.Collapsed不可见. IsEnabled:控件是否可用:bool类型. Background:背景色. FontSize:字体大 ...
- PYTHON开发--面向对象基础入门
面向对象 一:面向对象初级 1.思考:首先在python中,以前我们以前用到的几乎都是函数式编程,但是有时候函数式编程其中代码重复利用率太高,我们往往会把这些重复代码写进一个函数日后去调用,所以呢,今 ...
- baba 运动网
import com.sun.image.codec.jpeg.* 找不到包 在Myeclipse中编译项目时,如果提示类似 com.sun.image.codec.jpeg.* 下: imp ...
- WPF实现导航的几种方式
下面是展示的是几种导航方式: 我们来具体看下xaml文件 <Page x:Class="WPF实现Navigation.Page1" xmlns="http://s ...
- 多线程-GCD学习笔记
********************************* 基本概念 *********************************** 1. Grand Central Dispatch ...
- Uva_11462 GCD - Extreme (II)
题目链接 题意: 给定一个n, 求:GCD(1, 2) + GCD(1, 3) + GCD(2, 3) + …… + GCD(1, n) + GCD(2, n) + …… + GCD(n-1, n); ...
- Codeforces Round #205 (Div. 2) : B
如果某个数出现的次数大于或等于2次,那么平均分配到两个容器里面: 这里利用一个k来使得当出现次数为奇数时候分配得更加均匀: 剩下的就平均分配到两个容器里: 代码: #include<iostre ...
- NWERC 2012 Problem E Edge Case
比赛的时候刷了一点小聪明,发现这个数列是卢卡斯数,一个递推关系像斐波拉契数列的数列: 我不知道怎么证明,如果哪天无意中会证了再加上: 这题唯一的难点就是大数运算: 直接用JAVA 代码: import ...
- 向Python女神推荐这些年我追过的经典书籍
http://blog.csdn.net/yueguanghaidao/article/details/10416867 最近"瑞丽模特学Python"的热点牵动了大江南北程序员的 ...
- 在线CSS圆角生成器
http://www.paibaidu.com/demo/CSSBorder/CSSBorder.html