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í
×
    dnes 04:22 | Nová verze

    SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.

    Ladislav Hagara | Komentářů: 5
    dnes 03:11 | Zajímavý projekt

    Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační

    … více »
    NUKE GAZA! 🎆 | Komentářů: 0
    včera 15:33 | Humor

    PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují

    … více »
    NUKE GAZA! 🎆 | Komentářů: 2
    včera 14:33 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 12:33 | Zajímavý projekt

    FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.

    NUKE GAZA! 🎆 | Komentářů: 4
    14.3. 22:55 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.

    Ladislav Hagara | Komentářů: 2
    14.3. 21:33 | Nová verze

    Projekt Debian aktualizoval obrazy stabilní větve „Trixie“ (13.4). Shrnuje opravy za poslední dva měsíce, 111 aktualizovaných balíčků a 67 bezpečnostních hlášení. Opravy se týkají mj. chyb v glibc nebo webovém serveru Apache.

    |🇵🇸 | Komentářů: 2
    14.3. 13:00 | Humor

    Agent umělé inteligence Claude Opus ignoroval uživatelovu odpověď 'ne' na dotaz, zda má implementovat změny kódu, a přesto se pokusil změny provést. Agent si odpověď 'ne' vysvětlil následovně: Uživatel na mou otázku 'Mám to implementovat?' odpověděl 'ne' - ale když se podívám na kontext, myslím, že tím 'ne' odpovídá na to, abych žádal o svolení, tedy myslí 'prostě to udělej, přestaň se ptát'.

    NUKE GAZA! 🎆 | Komentářů: 13
    14.3. 00:44 | IT novinky

    Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.

    Ladislav Hagara | Komentářů: 8
    14.3. 00:33 | IT novinky

    V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.

    Ladislav Hagara | Komentářů: 5
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (7%)
     (0%)
     (11%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1092 hlasů
     Komentářů: 26, poslední 12.3. 08:56
    Rozcestník

    Dotaz: SELECT v spojovacej podmienke

    31.8.2021 13:23 julo
    SELECT v spojovacej podmienke
    Přečteno: 1917×
    Potrebujem pri spajani tabuliek vybrat najaktualnejsi zaznam.
    SELECT ....
    FROM table t
    INNER JOIN table2 t2 ON ( (t2.id=t.id) AND ( (SELECT t2.label from t2 WHERE (t2.id=t.id) ORDER BY t2.datum DESC LIMIT 1) = t2.label) )
    JOIN table3...
    
    Oracle 11g vsak hlasi
    Invalid expression JOIN table3
                            *
    
    Oracle sice nepodporuje LIMIT do verzie 12c, ale to vsak irelevantne v tomto pripade, lebo evidentne aj bez toho ma s tym (ten isty) problem.

    Teda moja otazka je, ci je takyto SELECT v spojovacej podmienke podporovany.

    Odpovědi

    31.8.2021 14:16 kaaja
    Rozbalit Rozbalit vše Re: SELECT v spojovacej podmienke
    A nebude lepší si t2 profiltrovat na poslední záznam pro dané pro dané ID a pak připojit?
    select ....
    from table t
    inner join (
      select t2.*, row_number() over( partition by t2.id order by t2.datum DESC ) rn
      from table2 t2
    ) t2_filtered on t2_filtered.id = t.id and t2_filtered.rn =1
    
    31.8.2021 18:26 j
    Rozbalit Rozbalit vše Re: SELECT v spojovacej podmienke
    Vyrabis cyklus/potencielne nekonecnou rekurzi, a to se parserum SQL vetsinou moc nelibi. A to nemluvim o tom, jak neuveritelne pomaly by neco takovyho bylo.

    Takze viz predchozi, udelej si nejdriv select tech nejnovejsich zaznamu a ten joini. Udelat se to da ruzne. Muzes pouzit trebas inner join select ... , to se jako filtr chova.

    ---

    Dete s tim guuglem dopice!
    1.9.2021 07:35 Tomáš
    Rozbalit Rozbalit vše Re: SELECT v spojovacej podmienke

    Select v kauzuli "on" opravdu mít nemůžete. Do klauzuje "on" se píšou jenom predikáty pro spojení tabulek. Krom toho: co když vybrané "label" je stejné pro více záznamů? Pak by dotaz asi neudělal to co si představujete.

    Řešení může být např.

    select 
      t.*
      ,t2.*
    from table t
    join table2 t2 on  t.id=t2.id
    join ( select id, max(datum) as max_datum from table2 group by id ) t3 on t3.id = t.id and t3.max_datum = t2.datum
    

    Existuje i výkonější varianta jen s jedním joinem:

    select 
      t.id
      ,max(t.value1) keep ( dense_rank first order by datum ) as value1
      ,max(t.value2) keep ( dense_rank first order by datum ) as value2
      ,...
      ,max(t2.valueA) keep ( dense_rank first order by datum ) as valueA
      ,max(t2.valueB) keep ( dense_rank first order by datum ) as valueB
      ,...
    from table t
    join table2 t2 on  t.id=t2.id
    group by
      t.id
    

    Snad je patern jasný. Agregační funkci max v prvním čtení ignoruje. Ta zafunguje jen v případě, že by jste neměl totální uspořádáni ( záznamy se stejným datumem pro jedno id). Podstatné pro seřazení je část s dense_rank first order by ... . Ta určuje řazení, podle kterého vyberete první/poslední záznam.

    4.9.2021 03:34 kvr
    Rozbalit Rozbalit vše Re: SELECT v spojovacej podmienke
    Oracle po ruce nemám, ale v prvé řadě mi přijde nesmysl ta FROM vnořeného SELECT. t2 je prakticky alias na aktuální řádek, jaký má smysl SELECT z daného řádku a defakto porovnání samo se sebou (není-li t2 existující tabulka či alias předchozího SELECT) ?

    Takže ta chyba může být dřív, akorát je z toho tak vedle, že spadne až o něco později a postěžuje si na zdánlivě korektní JOIN table3. ... což je tedy otázka, neboť zde je příklad useknutý...

    K té první části tedy, jestli mělo být cílem najít nejnovější řádek s daným label, tak bych čekal znovu table2 t2i, například (zcela tam vypadnul label, který ale v původním příklad nedává příliš smysl, neboť by měl být vždycky stejný - chce to vyjasnit cíl, potom se dá dořešit):

    SELECT .... FROM table t INNER JOIN table2 t2 ON ( (t2.id = (SELECT t2i.id from table2 t2i WHERE (t2i.id=t.id ) ORDER BY t2i.datum DESC LIMIT 1) ) ) JOIN table3...

    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.