2 ming key Ming_key 于 2016.03.31 19:10 提问

SQL语句统计问题,不想写union all

建表测试语句:

CREATE TABLE stbuu_cause109_20160331 (
intenbid BIGINT,
intrsrp00 BIGINT,
intrsrp01 BIGINT,
intrsrp02 BIGINT,
intrsrp03 BIGINT,
intrsrp04 BIGINT,
intrsrp05 BIGINT,
intrsrp06 BIGINT
);
插入测试数据:

INSERT INTO stbuu_cause109_20160331(intenbid,intrsrp00,intrsrp01,intrsrp02,intrsrp03,intrsrp04,intrsrp05,intrsrp06) values(1110,1,0,0,0,0,0,0);
INSERT INTO stbuu_cause109_20160331(intenbid,intrsrp00,intrsrp01,intrsrp02,intrsrp03,intrsrp04,intrsrp05,intrsrp06) values(1110,0,1,0,0,0,0,0);
INSERT INTO stbuu_cause109_20160331(intenbid,intrsrp00,intrsrp01,intrsrp02,intrsrp03,intrsrp04,intrsrp05,intrsrp06) values(1110,0,0,1,0,0,0,0);
INSERT INTO stbuu_cause109_20160331(intenbid,intrsrp00,intrsrp01,intrsrp02,intrsrp03,intrsrp04,intrsrp05,intrsrp06) values(1110,0,0,0,1,0,0,0);
INSERT INTO stbuu_cause109_20160331(intenbid,intrsrp00,intrsrp01,intrsrp02,intrsrp03,intrsrp04,intrsrp05,intrsrp06) values(1110,0,0,0,0,1,0,0);
INSERT INTO stbuu_cause109_20160331(intenbid,intrsrp00,intrsrp01,intrsrp02,intrsrp03,intrsrp04,intrsrp05,intrsrp06) values(1110,0,0,0,0,0,1,0);
INSERT INTO stbuu_cause109_20160331(intenbid,intrsrp00,intrsrp01,intrsrp02,intrsrp03,intrsrp04,intrsrp05,intrsrp06) values(1110,0,0,0,0,0,0,1);

select * from stbuu_cause109_20160331;

图片说明

需要实现的效果

图片说明

结果语句是:

select intenbid,-141 as rsrp,sum(intrsrp00) countt from stbuu_cause109_20160331 group by intenbid UNION all
select intenbid,-140 as rsrp,sum(intrsrp01) countt from stbuu_cause109_20160331 group by intenbid UNION all
select intenbid,-139 as rsrp,sum(intrsrp02) countt from stbuu_cause109_20160331 group by intenbid UNION all
select intenbid,-138 as rsrp,sum(intrsrp03) countt from stbuu_cause109_20160331 group by intenbid UNION all
select intenbid,-137 as rsrp,sum(intrsrp04) countt from stbuu_cause109_20160331 group by intenbid UNION all
select intenbid,-136 as rsrp,sum(intrsrp05) countt from stbuu_cause109_20160331 group by intenbid UNION all
select intenbid,-135 as rsrp,sum(intrsrp06) countt from stbuu_cause109_20160331 group by intenbid ;

目前这种实现方式不靠谱,intrsrp00-99个字段,sql写99个union all 语句会内存溢出,求大神解答,谢谢

2个回答

Ming_key
Ming_key   2016.03.31 19:11

数据库用的Postgresql

CSDNXIAON
CSDNXIAON   2016.03.31 19:22

SQL语句之Union和Union All
sql语句中的union和union all
SQL语句 UNION 和 UNION ALL 使用(一)
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Union All拼接Sql语句做批量添加
上篇文章《多种方法实现Excel批量导入数据库》说到,批量导入用了拼接Insert语句的方式进行,这种方式简单来说是把要导入的每条数据都拼接成一条Insert语句, 然后同时执行实现的。但是经过领导提醒,又用了另外一种方式,那就是用Union All做合并,合并完一张表之后,整张表导入。下面就简单介绍一下。     Union All是做联表查询的,平常的用法是:select * f
多表或单表数量统计 使用union all
使用的数据表格式如下 表一: Employees_China: E_ID     E_Name 01     Zhang, Hua 02     Wang, Wei 03     Carter, Thomas 04     Yang, Ming 表二: Employees_USA: E_ID     E_Name 01     Adams, John 02     Bush
Mybatis的oracle的经典SQL语句(分页-新增的id自增-批量新增-动态修改-union all)
Mybatis的oracle的经典SQL语句(分页-新增的id自增-批量新增-动态修改-union all) 分页:   select * from (select t.*,rownum rn from (select id, tru
Sql性能优化之UNION、UNION ALL
SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。1、SQL UNION 语法SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s
sql语句中多个union all的case when优化
今天有点空,打算把报表项目中前人留下的一段sql优化下。原sql大致如下(删除了设计公司数据的敏感信息):select '现场司机' 环节,'劳斯莱斯' 品牌, 'CIQ 直接喂料' 采集项目, count(1) 统计数量 from test_table where 操作人 IN('张三','李四','王五','赵六','钱七') and 操作类型='PDI喂料移车' AND 原库位='入库...
SQL用了Union后的排序问题
最近使用SQL语句进行UNION查询,惊奇的发现:SQL没问题,UNION查询也没问题,都可以得到想要的结果,可是在对结果进行排序的时候,却出问题了。
mysql UNION ALL查询分页
1.UNION ALL和UNION 的区别 UNION ALL理论上要比UNION的查询效率更高一些,因为UNION会将结果集中的数据进行过滤,将相同的数据进行剔除后返回,而UNION ALL不进行此操作,它会将结果集全部返回 2.UNION ALL分页要点 如果需要分页的时候只需要将他们联合查询的结果集当做一个表来查询就好了。 3.UNION AL
sql语句查询结果合并union all用法
整理别人的sql大概的思想是用union 和union all --合并重复行select * from Aunion select * from B--不合并重复行select * from Aunion allselect * from B按某个字段排序--合并重复行select *from (select * from Aunion select * from B) AS T
SQL中UNION和UNION ALL的详细用法
在开发中,有些数据的存储可能涉及到分库分表,查询的时候,可能需要查询所有的分表,这个时候,就需要用到UNION或者UNION ALL,下面介绍一下UNION的用法以及与UNION ALL的区别: UNION操作符用于合并两个或多个SELECT语句的结果集,这里需要注意的是:UNION内部的SELECT语句必须拥有相同数量的 列,列也必须拥有相似的数据类型,同时,每条SELECT语句中列的顺序必
Sql UNION 合并多个结果集并排序
1.建表语句及测试数据: --创建表A CREATE TABLE A( A1 int NULL, A2 nvArchAr(50) NULL, A3 decimAl(18, 0) NULL ) --测试数据 INSERT INTO A VALUES (1,'A1',1) INSERT INTO A VALUES (2,'A2',1) INSERT INTO A VALUES (3,'A3',