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 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 17
    včera 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.12. 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    23.12. 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    23.12. 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    22.12. 23:44 | Nová verze

    Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.

    Ladislav Hagara | Komentářů: 0
    21.12. 05:00 | Nová verze

    Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 2
    21.12. 01:55 | Nová verze

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

    Ladislav Hagara | Komentářů: 0
    19.12. 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 14
    19.12. 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 1
    Kdo vám letos nadělí dárek?
     (33%)
     (2%)
     (10%)
     (2%)
     (1%)
     (2%)
     (16%)
     (19%)
     (14%)
    Celkem 83 hlasů
     Komentářů: 18, poslední včera 15:30
    Rozcestník

    Dotaz: Pomoc so syntaxou SQL

    12.4.2010 10:46 eth4rendil | skóre: 13
    Pomoc so syntaxou SQL
    Přečteno: 297×
    Dobrý deň,

    snažím sa napísať jednu query ale bohužial neúspešne. vzor tabulky:
    nazov    datum        hodnota
    aaas     2010-03-10   a
    aaad     2010-03-10   n
    aaae     2010-03-10   a
    aaab     2010-04-10   a
    aaaq     2010-04-10   n
    aaaw     2010-05-10   a
    snažím dostať nasledovné: zistiť pre každý deň počet "a" a počet "n" teda výsledok by mal byť podľa tohoto vzoru takýto:
    datum       hodnota_a  hodnota_n
    2010-03-10  2          1
    2010-04-10  1          1
    2010-03-10  0          1
    viem spraviť ale iba cez dva selecty
    SELECT datum, count(*)
    FROM tabulka
    WHERE hodnota='a'
    GROUP BY datum
    ORDER BY datum DESC;
    len tým dostanem iba počet "a" a neviem ako to vložiť to jednej query/výsledku databáza je MySQL.

    ďakujem za akýkoľvek nápad

    Odpovědi

    okbob avatar 12.4.2010 11:17 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Pomoc so syntaxou SQL
    co treba
    SELECT datum, sum(CASE WHEN hodnota = 'a' THEN 1 ELSE 0 END),
                  sum(CASE WHEN hodnota = 'n' THEN 1 ELSE 0 END)
       FROM ...
      GROUP BY dataum;
    
    12.4.2010 11:27 FooBar
    Rozbalit Rozbalit vše Re: Pomoc so syntaxou SQL
    Netestovano na syntaktickou korektnost:
    SELECT
     datum,
     COUNT(NULLIF(hodnota, 'n')) AS hodnota_a,
     COUNT(NULLIF(hodnota, 'a')) AS hodnota_n,
    FROM
     tabulka
    GROUP BY datum;
    V pripade vetsiho mnozstvi hodnot muzes ten NULLIF pro opacnou hodnotu nahradit CASE vyrazem (pak by byla kazda polozka neco jako: COUNT(CASE WHEN hodnota = 'a' THEN 1 ELSE NULL END) AS hodnota_a).
    12.4.2010 12:05 eth4rendil | skóre: 13
    Rozbalit Rozbalit vše Re: Pomoc so syntaxou SQL
    dakujem pekne za nápady mne sa to medzicasom podarilo spraviť takto
    SELECT datum, count(*) as spolu,
    COUNT(if(hodnota='a',1,null)) AS pocet_hodnota_a,
    COUNT(if(hodnota='n',1,null)) AS pocet_hodnota_n,
    CONCAT(round((COUNT(if(hodnota_a='a',1,null))/COUNT(*))*100,0), ' %') as uspesnost
    FROM tabulka
    GROUP BY datum
    ORDER BY datum DESC;
    bude jednať o väčšiu tabuľku a teraz neviem ktorá s týchto troch možností je najrýchlejšia? ešte v poslednom stĺpci som spravil percentuálnu úslešnosť. teda sú 4 stĺpce:
    - dátum
    - spolu
    - pocet_hodnota_a (úspech)
    - pocet_hodnota_n (neúspech)
    - uspesnost
    Nedá sa namiesto COUNT(if(hodnota_a='a',1,null)) použiť niečo jednoduchšie teda napr iba pocet_hodnota_a ? či to sa dá použit už iba v order klauzele?

    ďakujem pekne

    12.4.2010 13:00 kulik
    Rozbalit Rozbalit vše Re: Pomoc so syntaxou SQL
    Lze vnorenym selectem, tzn. nad vystupem (datum, pocet_a, pocet_n) dopocitat ty zbyvajici, coz bude i prehlednejsi. Na "stejne urovni" aliasy pouzit nelze.
    Vzhledem k tomu, ze neuvadis ani o jakou databazi se jedna, ti tezko nekdo rekne, zda count bude rychlejsi nez sum. S nejvetsi pravdepodobnosti to nebud pozorovatelny rozdil. Pokud te rychlost opravdu trapi, tak se predevsim vykasli na formatovani sloupecku s procenty, to patri na prezentacni vrstvu.
    okbob avatar 12.4.2010 13:26 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Pomoc so syntaxou SQL
    Úzké hrdlo SQL databází představují v 99% diskové operace, takže není nutné řešit, zda se použít COUNT nebo SUM. Důležitý je počet diskových operací (čtení/zápis). V obou případech budou stejné - můžete ovšem napsat totální blbost, čímž počet diskových operací znásobíte - např.
    SELECT DISTINCT datum,
      (SELECT count(*) FROM tab WHERE datum = o.datum AND hodnota = 'a'),
      (SELECT count(*) FROM tab WHERE datum = o.datum AND hodnota = 'n')
      FROM tab o;
    
    Tento dotaz bude dělat totéž, nicméně může být 1000x pomalejší.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.