我目前有一个表的查询,它返回多行。 我想将每个人的这些组合成一行。
有办法做到这一点吗?
我需要的查询和结果的示例数据:
答案 0 :(得分:4)
使用分组和聚合:
select
max(Seq) as Seq,
ID,
sum(RED1) as RED1,
sum(RED2) as RED2,
sum(RED3) as RED3,
sum(GREEN1) as GREEN1,
sum(GREEN2) as GREEN2,
sum(GREEN3) as GREEN3
from
Table 1
group by
ID
演示:http://sqlfiddle.com/#!4/ad36e/3
注意:如果字段在组中具有多个非空值,则根据所需的结果使用不同的聚合值。使用sum
为您提供组中值的总和,使用max
为您提供组中的最高值。
答案 1 :(得分:3)
尝试此查询:
select ID , max(seq) Seq, max(red1) RED1 , max(red2) RED2, max(red3) RED3,
max(green1) GREEN1, max(green2) GREEN2, max(green3) GREEN3
from Table1
group by ID;