我们所拥有的:
id|value1|value2|
1 |15 |null |
2 |null |12 |
3 |98 |null |
4 |null |41 |
我们想要的-每两行对数据进行分组以得到以下结果:
idGrouped|value1|value2|
1 |15 |12 |
2 |98 |41 |
我想我可以在id列上使用模数。
这是一个Oracle数据库(但我希望在“纯sql”中进行操作)
编辑
IT可能不清楚,但重要的部分是“ idGrouped”列。我简化了示例,但是我需要每2行(或'n'行)对数据进行分组。
答案 0 :(得分:1)
您可以使用条件聚合:
select floor( (id - 1) / 2) as id, max(value1), max(value2)
from t
group by floor( (id - 1) / 2);
这假设id
在无间隙的情况下递增。如果不是这样,请使用row_number()
:
select floor( (seqnum - 1) / 2) as id, max(value1), max(value2)
from (select t.*, row_number() over (order by id) as seqnum
from t
) t
group by floor( (seqnum - 1) / 2);
答案 1 :(得分:0)
select value1, value2
from table1
where value1 is not null or value2 is not null