SQL行列转置
建业森林半岛 210 100 30 80
万科城 200 50 60 90
丰乐园 210 30 70 110
车类型 总数 建业森林半岛 万科城 丰乐园
A类车 180 100 50 30
B类车 160 30 60 70
C类车 280 80 90 110
CREATE TABLE `myc` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`housing` varchar(50) CHARACTER SET latin1 DEFAULT NULL,
`all_car` int(11) DEFAULT NULL,
`a_car` int(11) DEFAULT NULL,
`b_car` int(11) DEFAULT NULL,
`c_car` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of myc
-- ----------------------------
INSERT INTO `myc` VALUES ('1', 'senlinbandao', '210', '100', '30', '80');
INSERT INTO `myc` VALUES ('2', 'wanke', '200', '50', '60', '90');
INSERT INTO `myc` VALUES ('3', 'fengle', '210', '30', '70', '110');
id housing all_car a_car b_car c_car
1 senlinbandao 210 100 30 80
2 wanke 200 50 60 90
3 fengle 210 30 70 110
SELECT c2 AS '车类型', IF(c2='A类车',(SELECT SUM(a_car) FROM MYC),IF(c2='B类车',(SELECT SUM(b_car) FROM MYC),IF(c2='C类车',(SELECT SUM(c_car) FROM MYC),0))) AS '总数', SUM(IF(c1='senlinbandao',c3,0)) AS '建业森林半岛', SUM(IF(c1='wanke',c3,0)) AS '万科城', SUM(IF(c1='fengle',c3,0)) AS '丰乐园'
from( select housing as c1,'A类车' as c2,a_car as c3 from MYC
Union select housing,'B类车' as c2,b_car from MYC Union select housing,'C类车' as c2,c_car from MYC
) AS tx group by c2;
第二种写法
SELECT
'a_car' 车类型,
MAX(CASE housing WHEN 'senlinbandao' THEN a_car ELSE 0 END ) 建业森林半岛,
MAX(CASE housing WHEN 'wanke' THEN a_car ELSE 0 END ) 万科城 ,
MAX(CASE housing WHEN 'fengle' THEN a_car ELSE 0 END ) 丰乐园,
SUM(a_car) 总数
FROM myc
UNION
SELECT
'b_car' 车类型,
MAX(CASE housing WHEN 'senlinbandao' THEN b_car ELSE 0 END ) 建业森林半岛,
MAX(CASE housing WHEN 'wanke' THEN b_car ELSE 0 END ) 万科城 ,
MAX(CASE housing WHEN 'fengle' THEN b_car ELSE 0 END ) 丰乐园,
SUM(b_car) 总数
FROM myc
UNION
SELECT
'b_car' 车类型,
MAX(CASE housing WHEN 'senlinbandao' THEN c_car ELSE 0 END ) 建业森林半岛,
MAX(CASE housing WHEN 'wanke' THEN c_car ELSE 0 END ) 万科城 ,
MAX(CASE housing WHEN 'fengle' THEN c_car ELSE 0 END ) 丰乐园,
SUM(c_car) 总数
FROM myc
SQL行列转置的更多相关文章
- SQL 行列转置
),),[Score] int) Insert Class union all union all union all union all union all union all union all ...
- SQL 行列倒置
SQL的的行列倒置已经不是新知识了,但在博主的技术咨询期间,仍发现其实有很多人并不了解这块,所以在此专门写一篇博客记录.本文将以Mysql为例,并以数据采集指标信息获取为例子.在下面的例子,你可以在s ...
- 简化实现动态行列转置的SQL
动态行列转换的计算在实际业务中非经常见,网上各类技术论坛上都有讨论,比方以下这些问题: http://www.iteye.com/problems/87788 http://bbs.csdn.net/ ...
- 使用SQL SERVER PIVOT实现行列转置
一般我们在使用SQL语句实现行列转置时候,最常用的方法无外乎就是 case语句来实现,但是如果需要需要转置的列太多,那么case起来语句就无限庞大,十分不方便,sql server中的PIVOT就可以 ...
- SQL动态长度行列转置
一,案列问题描述: 某销售系统中,注册的用户会在随后的月份中购物下单,需要按月统计注册的用户中各个月下单的金额.源数据表如下: FM::注册月份,CM: 下单月份, AMT:下单金额 期望得到如下统计 ...
- 用powershell+excel行列转置三步走
本文重点讲解第一步,手动在excel表中输入公式,或者用powershell自动输入公式. 第二步,用powershell向excel中写入数据,略. 第三步,用powershell从excel中读取 ...
- Oracle 行列转置
两种简单的行列转置 1.固定列数的行列转换如student subject grade--------- ---------- --------student1 语文 80st ...
- 数据透视表sql:用SQL行列转换实现数据透视的一些思考
用SQL行列转换实现数据透视的一些思考 摘要:根据对报表开发过程中碰到的需要用SQL行列转换进行解决的一类查询统计问题的分析,逐步探索求解得到一种较通用的解决思路,并用函数进行实现.该解决思路及函数实 ...
- HAWQ中的行列转置
行列转置是ETL或报表系统中的常见需求,HAWQ提供的内建函数和过程语言编程功能,使行列转置操作的实现变得更为简单. 一.行转列 1. 固定列数的行转列 原始数据如下: test=# select * ...
随机推荐
- 【CF1097E】Egor and an RPG game(动态规划,贪心)
[CF1097E]Egor and an RPG game(动态规划,贪心) 题面 洛谷 CodeForces 给定一个长度为\(n\)的排列\(a\),定义\(f(n)\)为将一个任意一个长度为\( ...
- 【BZOJ5294】[BJOI2018]二进制(线段树)
[BZOJ5294][BJOI2018]二进制(线段树) 题面 BZOJ 洛谷 题解 二进制串在模\(3\)意义下,每一位代表的余数显然是\(121212\)这样子交替出现的. 其实换种方法看,就是\ ...
- 协同过滤算法 teamCF
http://www.infoq.com/cn/articles/recommendation-algorithm-overview-part02
- extern C小结
名词解释 1.extern extern翻译为外部的,用在变量或函数之前,使其可见范围拓宽,这就是为啥叫extern吧.那它是用来干嘛的呢?当用在变量或函数之前,提示编译器到其他模块寻找其定义. 举个 ...
- Xposed+JustTrustMe+Android
场景介绍:APP抓包 引出的知识点:ssl-pinning. ssl-pinning: apk在开发时就将服务端证书一块打包到客户端里.这样在HTTPS建立时与服务端返回的证书比对一致性,进而识别出中 ...
- hdu 2328 Corporate Identity(kmp)
Problem Description Beside other services, ACM helps companies to clearly state their “corporate ide ...
- navicat primium 快捷键与命令
1.ctrl+q 打开查询窗口 2.ctrl+/ 注释sql语句 3.ctrl+shift +/ 解除注释 4.ctrl+r 运行查询窗口的s ...
- HDU/HDOJ 4864 Task
贪心题. 贪心方法很是naive...... 首先我们就能注意到一个性质:优先选择时间(x)长的,然后才是等级(y). 所以我们把机器和任务排好序,从大到小枚举任务.对于每一个x满足的机器,x也一定满 ...
- A1119. Pre- and Post-order Traversals
Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can ...
- luogu3731 新型城市化
题目链接 思路 这道题对于题意的转化很关键. 题目要求的是添上一条边,使得图中最大团的大小变大.给出的边是原图的补集,这就给我们了提示. 因为题目中说,原图中最多有两个团.所以给出的边一定形成了一个二 ...