Hirdetés

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

  • nyunyu

    félisten

    Akár alselectet is lehetett volna írni:

    SELECT *
    FROM items
    WHERE type=477
    AND status='OPEN'
    AND id in (SELECT id
    FROM items
    GROUP BY id
    HAVING COUNT(*) = 1)

    Elvileg ez ekvivalens az előző, joinolt megoldással.

    #4660: Szerintem a kérdés direkt van ilyen egyszerűre fogalmazva, hogy meg lehessen oldani subquery meg analitikus függvény nélkül.

    Szerintem meg észre kéne venni, hogy ez a feladat két lépésből áll, először leválogatni az egyelemű tételeket, majd azokon szűrni.
    Ha egy selectben szűrsz és számolsz, akkor fals eredményt fogsz kapni, mivel a szűrt eredményhalmazt fogja megszámolni, nem a teljes táblát.
    (Először a WHERE értékelődik ki, és csak utána a HAVING)

    -> vagy alselect vagy join kell.

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