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 23:44 | Nová verze

    Byla vydána nová verze 2.56.0 distribuovaného systému správy verzí Git. Přispělo 104 vývojářů, z toho 39 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 21:22 | Bezpečnostní upozornění

    Hackerská skupina ShinyHunters oznámila průnik do informačních systémů FBI, prostřednictvím zero-day zranitelnosti v platformě Oracle PeopleSoft, kterou úřad využívá mimo jiné pro náborový portál FBIJobs.gov. Útočníci tvrdí, že získali až 3 TB dat o současných i bývalých zaměstnancích a uchazečích o práci. Jako důkaz zveřejnili vzorek přibližně 5 000 záznamů obsahující jména, adresy, telefonní čísla, data narození, čísla

    … více »
    AfD 💙 | Komentářů: 1
    včera 21:11 | Zajímavý článek

    Doba kompilace linuxového jádra se díky rychlejšímu hardwaru a optimalizacím kbuildu snižuje k deseti sekundám. Nejnovější patche Lorenza Stoakse (vznikají i s pomocí SI) zkrátily na testovacím stroji dobu sestavení z dlouhých 22 vteřin na pouhých 15, a to bez použití RAMdisku. Testovací systém tvořily dva procesory AMD EPYC 9575F (oba dohromady poskytují celkem 128 jader a 256 vláken), čtyřiadvacet 64GB DDR5-6400 paměťových modulů a

    … více »
    AfD 💙 | Komentářů: 2
    včera 01:33 | Komunita

    Před rokem a půl vývojáři postmarketOS informovali, že pro projekt hledají nové jméno. Včera bylo oznámeno: postmarketOS se nově jmenuje Nura.

    Ladislav Hagara | Komentářů: 4
    27.9. 13:44 | Zajímavý projekt

    Hra Factorio dorazila na Printables. Hned teď si můžete stáhnout 65 různých modelů a nechat celou mimozemskou planetu oživnout na svém stole.

    Ladislav Hagara | Komentářů: 13
    26.9. 19:22 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 18.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    25.9. 23:33 | Humor

    Prezident USA Donald Trump během svého projevu na valném shromáždění OSN 22. září 2026 prohlásil, že umělá inteligence 'bude dále oficiálně nazývána superinteligencí', zkráceně SI. Svůj návrh zdůvodnil takto: 'Použití slova artificial činí inteligenci falešnou. Ona falešná není, ve skutečnosti je úžasná'. Zároveň ve svém proslovu prohlásil, že Spojené státy kategoricky odmítají jakékoliv pokusy o vytvoření 'globalistického

    … více »
    AfD 💙 | Komentářů: 26
    25.9. 23:22 | Nová verze

    Čínská technologická firma Xiaomi představila novou verzi 2.6 svého modelu MiMo, váhy modelů MiMo‑V2.6‑Pro‑RL a MiMo‑V2.6‑Flash‑RL jsou dostupné na HuggingFace pod licencí MIT. Výkonnější varianta Pro má přes bilion parametrů, z toho 42 miliard aktivních, úspornější Flash 309 miliard parametrů, z nichž se při generování aktivuje přibližně 15 miliard. Oba modely mají délku kontextového okna milion tokenů. Tyto MoE modely zvládají

    … více »
    AfD 💙 | Komentářů: 0
    25.9. 03:33 | Komunita

    Proběhl Snapdragon Summit 2026. Společnost Qualcomm se mimo jiné pochlubila během Linuxu na čipech Snapdragon X2. Zatím pouze v ranní verzi vhodné pro vývojáře linuxových distribucí a přispěvatele do jádra Linux.

    Ladislav Hagara | Komentářů: 0
    24.9. 21:11 | Nová verze

    Byla vydána nová verze 2.0 klienta F-Droid určeného pro instalaci bezplatných a otevřených mobilních aplikací do Androidu ze softwarového repozitáře F-Droid (Wikipedie). Jedná se o alternativu k Google Play.

    Ladislav Hagara | Komentářů: 7
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2742 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    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.