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

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi 2023.05. Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | IT novinky

    Linux Foundation Europe představila projekt RISE (RISC-V Software Ecosystem), jehož cílem je urychlit vývoj open source softwaru pro architekturu RISC-V.

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

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu pro jednodeskové počítače na platformě ARM, byl vydán ve verzi 23.05. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | Komunita

    Minulý týden proběhla openSUSE Conference 2023. Mimo jiné bylo oznámeno přejmenování systému MicroOS Desktop. MicroOS Desktop GNOME byl přejmenován na openSUSE Aeon a MicroOS Desktop Plasma na openSUSE Kalpa.

    Ladislav Hagara | Komentářů: 0
    včera 09:00 | Komunita

    Thom Holwerda z OSnews si všímá, že vývoj operačního systému MINIX je prakticky mrtvý. Jeho hlavní autor, Andrew Tanenbaum, formálně odešel do důchodu v roce 2014 a příspěvky do kódu v následujících letech vůbec ustaly. Stav projektu shrnuje diskuze z roku 2020. Sice vyšlo najevo, že Intel používal MINIX v Management Engine, ale změny nezveřejňoval.

    Fluttershy, yay! | Komentářů: 0
    včera 07:00 | Nová verze

    Google Chrome 114 byl prohlášen za stabilní. Nejnovější stabilní verze 114.0.5735.90 přináší řadu oprav a vylepšení (YouTube). Vypíchnut je CHIPS (Cookies Having Independent Partitioned State). Opraveno bylo 16 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    30.5. 17:33 | Komunita

    Byly zveřejněny prezentace a videozáznamy přednášek a fotografie z česko-slovenského setkání poskytovatelů přístupu k internetu, provozovatelů telekomunikačních sítí, registrátorů domén a provozovatelů počítačových sítí a technických nadšenců CSNOG 2023 (Czech and Slovak Network Operators Group) konaného 16. a 17. května ve Zlínu.

    Ladislav Hagara | Komentářů: 0
    30.5. 17:00 | Pozvánky

    Soutěž amatérských robotů Robotický den 2023 proběhne v neděli 4. června v Kongresovém centru Praha.

    Ladislav Hagara | Komentářů: 0
    30.5. 14:11 | IT novinky

    V Tchaj-peji probíhá počítačový veletrh COMPUTEX 2023. Firmy představují své novinky. Nvidia například superpočítač DGX GH200 AI.

    Ladislav Hagara | Komentářů: 2
    30.5. 12:11 | Nová verze

    Vyšla nová verze XMPP (Jabber) klienta Gajim. Nejvýznamnější novinkou je integrace OMEMO pluginu přímo do jádra aplikace, takže již není třeba plugin samostatně instalovat. Přehled dalších novinek je dostupný na oficiálních stránkách. Gajim je vytvořen v jazyce Python s využitím knihovny GTK a vedle Linuxu jej lze vyzkoušet i na platformách MacOS a Windows.

    sonicpp | Komentářů: 0
    Obnovovací frekvenci obrazovky (LCD) preferuji
     (74%)
     (20%)
     (4%)
     (2%)
    Celkem 846 hlasů
     Komentářů: 13, poslední 25.5. 07:25
    Rozcestník

    Dotaz: Pomoc so syntaxou SQL

    12.4.2010 10:46 eth4rendil | skóre: 13
    Pomoc so syntaxou SQL
    Přečteno: 229×
    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.