abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 15:55 | Nová verze

    Alliance for Open Media vydala verzi 1.0.0 specifikace svobodného videoformátu AV2. Jean-Baptiste Kempf, prezident neziskové organizace VideoLAN stojící za svobodným multiplatformním multimediálním přehrávačem a frameworkem VLC, představil na svém blogu dekodér AV2 s názvem dav2d.

    Ladislav Hagara | Komentářů: 0
    včera 15:00 | Nová verze

    V aktuálním přehledu vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) bylo oznámeno vydání nové verze 0.2.0.

    Ladislav Hagara | Komentářů: 0
    včera 14:33 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.5.1. Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | Nová verze

    Byla vydána nová stabilní verze 26.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Yarara. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    29.5. 00:22 | Nová verze

    Byla vydána verze 1.96.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 1
    28.5. 20:33 | IT novinky

    Společnosti IBM a Red Hat představily Project Lightwell s investicí 5 miliard dolarů. Jedná se o důvěryhodné clearingové centrum pro bezpečnost open source softwaru a zabezpečení dodavatelských řetězců s novým AI modelem a globální skupinou více než 20 000 softwarových inženýrů. Služby centra budou dostupné prostřednictvím komerčních předplatných. Project Lightwell staví na iniciativách jako Anthropic Glasswing nebo OpenAI Trust Access for Cyber.

    Ladislav Hagara | Komentářů: 1
    28.5. 18:22 | Nová verze

    Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 26.05. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    28.5. 11:44 | IT novinky

    Český stát by v budoucnu mohl provozovat vlastní alternativu ke komunikačním aplikacím typu WhatsApp, Signal, Telegram, Facebook Messenger a podobně. Cílem je zajistit bezpečnou datovou komunikaci pro stát a jeho důležité subjekty, jako jsou bezpečnostní složky, ministerstva a další organizace.

    Ladislav Hagara | Komentářů: 26
    28.5. 11:22 | Pozvánky

    Už za týden, ve čtvrtek 4. června, se v Národní technické knihovně v pražských Dejvicích uskuteční další konference věnovaná tématům spojeným s IPv6 - Den IPv6. Program akce a registrační formulář jsou k dispozici na webu akce. Kapacita konference je omezená, proto organizátoři doporučují, aby se vážní zájemci přihlásili včas (k dnešnímu dni zbývá přibližně 30 volných míst). Konferenci Den IPv6 2026 organizují i letos společně sdružení CESNET, CZ.NIC a NIX.CZ.

    VSladek | Komentářů: 1
    28.5. 05:22 | IT novinky

    Zařízení Steam Deck OLED bylo znovu naskladněno, ale vlivem rostoucích cen pamětí a úložišť má novou, vyšší cenovku. Steam Deck OLED 512 GB stojí nově 779 EUR (stál 569 EUR) a Steam Deck OLED 1 TB stojí 919 EUR (stál 679 EUR). Samotné zařízení se nijak nezměnilo a nové ceny tedy pouze odráží aktuální náklady na komponenty a další globální logistické výzvy, se kterými se potýká celá branže.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (12%)
     (8%)
     (2%)
     (15%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1765 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    21.10.2009 12:09 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: nadvakrat COUNT(*)
    Ten první případ jde řešit existenčním (semi-)joinem:
    SELECT
        COUNT(1) AS total
    FROM
        tbl tbl1
    WHERE
        tbl1.id_label = 1
        AND EXISTS (SELECT
                1
            FROM
                tbl tbl2
            WHERE
                tbl2.id_link = tbl1.id_link
                AND tbl2.id_label = 3)
    /
    
    Obecně — a pro velké objemy dat — lze zneužít analytické funkce:
    SELECT
        COUNT(CASE WHEN rn = 1 THEN 1 ELSE NULL END) AS total
    FROM
        (SELECT
            id_link,
            id_label,
            COUNT(CASE WHEN id_label IN (1, 2, 3) THEN 1 ELSE NULL END) OVER (PARTITION BY id_link) AS cnt,
            ROW_NUMBER() OVER (PARTITION BY id_link ORDER BY 1) AS rn
        FROM
            tbl)
    WHERE
        cnt = 3
    /
    
    Podmínku na hodnoty ID_LABEL vsuneš do výrazu agregační funkce COUNT() na řádce 7. Počet hodnot pro ID_LABEL musí být uveden ve WHERE klauzuli na řádce 12. Tedy:
    SELECT
        COUNT(CASE WHEN rn = 1 THEN 1 ELSE NULL END) AS total
    FROM
        (SELECT
            id_link,
            id_label,
            COUNT(CASE WHEN id_label IN (1, 3) THEN 1 ELSE NULL END) OVER (PARTITION BY id_link) AS cnt,
            ROW_NUMBER() OVER (PARTITION BY id_link ORDER BY 1) AS rn
        FROM
            tbl)
    WHERE
        cnt = 2
    /
    
    Výhoda je jasná: stačí full-scan nad tabulkou; žádný joiny. Zbytek odře WINDOW-SORT. :-D

    Jo! A jestli to chceš mít lépe konfigurovatelný, pak to jde udělat ještě takto:
    WITH conditions AS (
        SELECT 1 AS val FROM dual
        UNION ALL
        SELECT 3        FROM dual)
    SELECT
        COUNT(CASE WHEN rn = 1 THEN 1 ELSE NULL END) AS total
    FROM
        (SELECT
            id_link,
            id_label,
            COUNT(CASE WHEN id_label IN (SELECT val FROM conditions) THEN 1 ELSE NULL END) OVER (PARTITION BY id_link) AS cnt,
            ROW_NUMBER() OVER (PARTITION BY id_link ORDER BY 1) AS rn
        FROM
            tbl)
    WHERE
        cnt = (SELECT COUNT(1) FROM conditions)
    /
    
    Prostě jen uvedeš veškeré hodnoty ve factoring klauzuli. :-) Klidně by to šlo udělat tak, že bys přes bindovanou proměnnou dodal řetězec čísel oddělených třebas čárkou, ale to je již nad rámec dotazu. :-D

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.