oracle中的SQL查询展平了一个表

mar*_*who 1 sql oracle oracle11g

所以我在sql中有一个表,它看起来像这样

controlnum  taxyear        payrollg                 alaska
12334        2012           16                      25
12334        2012           16                      25
12334        2012           16                      NULL
12334        2012           16                      NULL
12334        2012           16                      25
12334        2012           16                      25
12332        2012           14                      23
12332        2012           14                      NULL
12333        2012           14                      23
12333        2012           14                      NULL
Run Code Online (Sandbox Code Playgroud)

我想这样压扁它

controlnum  taxyear        payroll                 alaska
12334        2012           16                      25
12333        2012           14                      23
12332        2012           14                      23
Run Code Online (Sandbox Code Playgroud)

这是我试过的查询,它给了我语法错误,任何人都可以帮忙吗?

SELECT 
Controlnum "controlNumber",
taxyear "taxYear",
payrollg "payRollGroup"

FROM 
states

MAX (CASE WHEN alaska IS NOT NULL THEN alaska ELSE NULL END) AS 'Alaska'
Run Code Online (Sandbox Code Playgroud)

Rap*_*aus 5

    SELECT 
    Controlnum "controlNumber",
    taxyear "taxYear",
    payrollg "payRollGroup"
    MAX(NVL(alaska, 0)) 'Alaska'--NVL if you want a zero value when only null values exist...
    -- or NVL(MAX(alaska), 0)
    FROM 
    states
    GROUP BY Controlnum, taxyear, payrollg
Run Code Online (Sandbox Code Playgroud)