Hirdetés

Új hozzászólás Aktív témák

  • Apollo17hu
    őstag

    Sziasztok!

    Adott egy tábla:

    CREATE TABLE test
    (
        value integer,
        sector integer,
        id integer NOT NULL DEFAULT nextval('test_id_seq'::regclass),
        CONSTRAINT pk PRIMARY KEY (id)
    );

    A sector (értéke 1 - 5-ig terjedhet).

    Egy olyan lekérdezést szeretnék írni, amely összegzi a value mező értékeit és csoportosítja szektor alapján az adatokat, de úgy, hogy a 2-es, 3-as és 4-es szektort összevonja, azaz egyben kezelje. Tehát ne 5, hanem 3 sort adjon vissza.
    Nem egy bonyolult történet, de ezt egy lekérdezésben akarom megvalósítani, az eredeti tábla módosítása nélkül.

    SELECT SUM(value), sector FROM test GROUP BY sector;

    Szerintetek hogyan lehet ezt a legegyszerűbb, leggyorsabb módon megvalósítani? Elég sok rekord lesz a táblában.

    select sum(value)
    ,case
    when sector = 1 then '1'
    when sector in (2, 3, 4) then '2, 3, 4'
    when sector = 5 then '5'
    end
    from test
    group by
    case
    when sector = 1 then '1'
    when sector in (2, 3, 4) then '2, 3, 4'
    when sector = 5 then '5'
    end

Új hozzászólás Aktív témák