表 如下
产品 投产月份 投产次数 投产数量
COL1 COL2 COL3 COL4
A 2009-06 1 10
A 2009-06 2 10
A 2009-07 3 10
B 2009-06 1 10
B 2009-07 2 10
C 2009-07 1 10
A 2009-06 4 10第一个:查询语句实现如下结果:
想按月份把产品种类给标识出来,查询结果如下产品 投产月份 投产次数 投产数量 种类
COL1 COL2 COL3 COL4 COL5
A 2009-06 1 10 1
A 2009-06 2 10 0 (2009年6月A产品已投产,不计入种类)
A 2009-06 3 10 0 (2009年6月A产品已投产,不计入种类)
A 2009-07 4 10 1
B 2009-06 1 10 1
B 2009-07 2 10 1
C 2009-07 1 10 1第二个:按月份汇总查询, 投产月份 投产数量 种类
COL2 COL4 COL5
2009-06 40 2
2009-07 30 3其实第二个就是第一个的汇总,但是如果能直接从表中查询出来效率更高的话,最好能直接查询出来.请教高手!
产品 投产月份 投产次数 投产数量
COL1 COL2 COL3 COL4
A 2009-06 1 10
A 2009-06 2 10
A 2009-07 3 10
B 2009-06 1 10
B 2009-07 2 10
C 2009-07 1 10
A 2009-06 4 10第一个:查询语句实现如下结果:
想按月份把产品种类给标识出来,查询结果如下产品 投产月份 投产次数 投产数量 种类
COL1 COL2 COL3 COL4 COL5
A 2009-06 1 10 1
A 2009-06 2 10 0 (2009年6月A产品已投产,不计入种类)
A 2009-06 3 10 0 (2009年6月A产品已投产,不计入种类)
A 2009-07 4 10 1
B 2009-06 1 10 1
B 2009-07 2 10 1
C 2009-07 1 10 1第二个:按月份汇总查询, 投产月份 投产数量 种类
COL2 COL4 COL5
2009-06 40 2
2009-07 30 3其实第二个就是第一个的汇总,但是如果能直接从表中查询出来效率更高的话,最好能直接查询出来.请教高手!
是不是写的有问题,还是我理解错了,感觉说的不是很清楚。看表:A产品的数据
产品 投产月份 投产次数 投产数量
COL1 COL2 COL3 COL4
A 2009-06 1 10
A 2009-06 2 10
A 2009-06 4 10
A 2009-07 3 10 然后你查出来的
COL1 COL2 COL3 COL4 COL5
A 2009-06 1 10 1
A 2009-06 2 10 0 (2009年6月A产品已投产,不计入类)
A 2009-06 3 10 0 (2009年6月A产品已投产,不计入类)
A 2009-07 4 10 1
觉得奇怪~~~~
select col1,col2,col3,col4,
case when row_number()over(partition by col1,col2 order by col3)=1 then 1 else 0 end col5
from a2.
select col2,sum(col4),count(distinct col1)
from a
group by col2
select col1,col2,col3,col4,
case when min(col3) over(partition by col1,col2)=col3 then 0 else 1 end col5
from a 这样也应该可以吧,楼主试试
select col1,col2,col3,col4,
case when min(col3) over(partition by col1,col2)=col3 then 1 else 0 end col5
from a不好意思,写错了