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 14:00 | Zajímavý článek

    Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).

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

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 0
    17.7. 18:44 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).

    Ladislav Hagara | Komentářů: 1
    17.7. 16:11 | Nová verze

    Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 2
    17.7. 15:55 | Komunita

    Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.

    Ladislav Hagara | Komentářů: 5
    16.7. 21:22 | IT novinky

    Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.

    Ladislav Hagara | Komentářů: 19
    16.7. 16:22 | IT novinky

    Vláda dne 16. července 2025 schválila návrh nového jednotného vizuálního stylu státní správy. Vytvořilo jej na základě veřejné soutěže studio Najbrt. Náklady na přípravu návrhu a metodiky činily tři miliony korun. Modernizovaný dvouocasý lev vychází z malého státního znaku. Vizuální styl doprovází originální písmo Czechia Sans.

    Ladislav Hagara | Komentářů: 26
    16.7. 15:33 | Upozornění

    Vyhledávač DuckDuckGo je podle webu DownDetector od 2:15 SELČ nedostupný. Opět fungovat začal na několik minut zhruba v 15:15. Další služby nesouvisející přímo s vyhledáváním, jako mapyAI asistent jsou dostupné. Pro některé dotazy během výpadku stále funguje zobrazování například textu z Wikipedie.

    bindiff | Komentářů: 8
    16.7. 13:33 | Bezpečnostní upozornění

    Více než 600 aplikací postavených na PHP frameworku Laravel je zranitelných vůči vzdálenému spuštění libovolného kódu. Útočníci mohou zneužít veřejně uniklé konfigurační klíče APP_KEY (např. z GitHubu). Z více než 260 000 APP_KEY získaných z GitHubu bylo ověřeno, že přes 600 aplikací je zranitelných. Zhruba 63 % úniků pochází z .env souborů, které často obsahují i další citlivé údaje (např. přístupové údaje k databázím nebo cloudovým službám).

    Ladislav Hagara | Komentářů: 5
    16.7. 00:11 | Nová verze

    Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (27%)
     (7%)
     (3%)
     (0%)
     (1%)
     (4%)
    Celkem 410 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    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.