我写一个问题的问题,并希望有人可以提供一些建议。这些数据与钻孔地质有关。“从”和“到”字段是钻孔的深度。
表1:
holeID --- | --- From ---|---To---|---FMN---|---Rocktype ---|
MW1------|-------0-------|---10---|-----X-----|--------13-------|
MW1------|-------10-----|---20---|-----X-----|--------122------|
MW1------|-------20-----|---30---|-----Y-----|--------177------|
MW1------|-------30-----|---40---|-----Y-----|--------146------|
MW1------|-------40-----|---50---|-----Z-----|--------145-------|
MW1------|-------50-----|---60---|-----X-----|--------1----------|
MW1------|-------60-----|---70---|-----X-----|--------123-------|
MW1------|-------70-----|---80---|-----X-----|--------121-------|
MW1------|-------80-----|---90---|-----Z-----|--------120-------|
我想浓缩为:
holeID --- | --- From ---|---To---|---FMN---|
MW1------|-------0-------|---20---|-----X-----|
MW1------|-------20-----|---40---|-----Y-----|
MW1------|-------40-----|---50---|-----Z-----|
MW1------|-------50-----|---80---|-----X-----|
MW1------|-------80-----|---90---|-----Z-----|
最佳答案
select holeid, "from", "to", fmn
from (
select
holeid,
first_value("from") over(partition by p order by "from") as "from",
first_value("to") over(partition by p order by "to" desc) as "to",
fmn
from (
select
holeid, "from", "to", fmn,
count(p or null) over(partition by holeid order by "from") p
from (
select
holeid, "from", "to", fmn,
lag(fmn, 1, '') over(partition by holeid order by "from") != fmn p
from table1
) s
) s
) s
group by 1, 2, 3, 4
order by 1, 2