city,code,value1,value2,value3,value4.
值如下:
025,'a',1,2,3,4
025,'b',2,3,4,5
010,'c',3,4,5,6
010,'d',5,6,7,8
想得到的结果是,按城市分组,获取value1,2,3,4列的总值,code随取一个
比如出来如下结果:
025,'a',3,4,7,9
101,'d',8,10,12,14
因为数据量比较大,希望能有比较高效的查询。
7 个解决方案
#1
不就是一个最基本的汇总sql么?
select city,max(code),sum(value1),sum(value2),sum(value3),sum(value4) from table group by city
select city,max(code),sum(value1),sum(value2),sum(value3),sum(value4) from table group by city
#2
不好意思,描述有些问题。
比如:表table,有以下列
city,code,fz1,fz2,value1,value2
值如下:
025,'a','fz1','fz2',1,2
025,'','fz1','fz2',1,2
025,'','fz2','fz3',2,3
010,'','fz1','fz2',3,5
010,'','fz1','fz2',3,4
010,'d','fz2','fz4',5,6
想得到的结果是,按城市,fz1,fz2列分组,获取value1,2列的总值,code随取一个[因为有时候一个分组下的code会出现空,但在另一个分组下不为空,就是说city和code是对应起来的,但有时候city会对应好几个code,code也有空的情况]
比如出来如下结果:
025,'a','fz1','fz2',2,4
025,'a','fz2','fz3',3,4
010,'d','fz1','fz2',6,9
010,'d','fz1','fz2',5,6
比如:表table,有以下列
city,code,fz1,fz2,value1,value2
值如下:
025,'a','fz1','fz2',1,2
025,'','fz1','fz2',1,2
025,'','fz2','fz3',2,3
010,'','fz1','fz2',3,5
010,'','fz1','fz2',3,4
010,'d','fz2','fz4',5,6
想得到的结果是,按城市,fz1,fz2列分组,获取value1,2列的总值,code随取一个[因为有时候一个分组下的code会出现空,但在另一个分组下不为空,就是说city和code是对应起来的,但有时候city会对应好几个code,code也有空的情况]
比如出来如下结果:
025,'a','fz1','fz2',2,4
025,'a','fz2','fz3',3,4
010,'d','fz1','fz2',6,9
010,'d','fz1','fz2',5,6
#3
就按city,fz1,fz2 分组,code和city另外整理一个对应表关联即可
#4
select fz1,fz2,code,sum(value1),sum(value2) from table group by fz1,fz2 基本的查询语句!
#5
select city,max(code),fz1,fz2,sum(value1),sum(value2)
from table_name
group by city,fz1,fz2,
#6
你给的结果不对吧
#7
你的结果完全看不懂
#1
不就是一个最基本的汇总sql么?
select city,max(code),sum(value1),sum(value2),sum(value3),sum(value4) from table group by city
select city,max(code),sum(value1),sum(value2),sum(value3),sum(value4) from table group by city
#2
不好意思,描述有些问题。
比如:表table,有以下列
city,code,fz1,fz2,value1,value2
值如下:
025,'a','fz1','fz2',1,2
025,'','fz1','fz2',1,2
025,'','fz2','fz3',2,3
010,'','fz1','fz2',3,5
010,'','fz1','fz2',3,4
010,'d','fz2','fz4',5,6
想得到的结果是,按城市,fz1,fz2列分组,获取value1,2列的总值,code随取一个[因为有时候一个分组下的code会出现空,但在另一个分组下不为空,就是说city和code是对应起来的,但有时候city会对应好几个code,code也有空的情况]
比如出来如下结果:
025,'a','fz1','fz2',2,4
025,'a','fz2','fz3',3,4
010,'d','fz1','fz2',6,9
010,'d','fz1','fz2',5,6
比如:表table,有以下列
city,code,fz1,fz2,value1,value2
值如下:
025,'a','fz1','fz2',1,2
025,'','fz1','fz2',1,2
025,'','fz2','fz3',2,3
010,'','fz1','fz2',3,5
010,'','fz1','fz2',3,4
010,'d','fz2','fz4',5,6
想得到的结果是,按城市,fz1,fz2列分组,获取value1,2列的总值,code随取一个[因为有时候一个分组下的code会出现空,但在另一个分组下不为空,就是说city和code是对应起来的,但有时候city会对应好几个code,code也有空的情况]
比如出来如下结果:
025,'a','fz1','fz2',2,4
025,'a','fz2','fz3',3,4
010,'d','fz1','fz2',6,9
010,'d','fz1','fz2',5,6
#3
就按city,fz1,fz2 分组,code和city另外整理一个对应表关联即可
#4
select fz1,fz2,code,sum(value1),sum(value2) from table group by fz1,fz2 基本的查询语句!
#5
select city,max(code),fz1,fz2,sum(value1),sum(value2)
from table_name
group by city,fz1,fz2,
#6
你给的结果不对吧
#7
你的结果完全看不懂