Byla vydána verze 1.70.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example. Jako reakce na rostoucí obavy z vlivu korporací na vývoj Rustu a předložený návrh restriktivních zásad používání ochranných známek Rustu, byl nedávno představen komunitní fork Rustu se 100 % méně byrokracie: Crab (CrabLang).
Oliver Smith z Canonicalu shrnuje základní vlastnosti „neměnné“ distribuce Ubuntu Core také ve srovnání s protějšky Chrome OS, Fedora Silverblue a MicroOS. Canonical připravuje desktopovou variantu Ubuntu Core vedle dosavadní serverové/embedded.
Z aktualizovaného seznamu chyb (pdf) procesoru AMD EPYC 7002: #1474 - procesor se po 1044 dnech od posledního resetu zasekne [reddit].
Fossil (Wikipedie) byl vydán ve verzi 2.22. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.
David Malcolm se ve svém příspěvku na blogu vývojářů Red Hatu rozepsal o vylepšeních statické analýzy (volba -fanalyzer) v GCC 13.
Byla vydána nová stabilní verze 23.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Stoat. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.
Příspěvek na blogu CZ.NIC upozorňuje na nový útok na weby v Česku. Na honeypotech na Turrisech byla zaznamenána nová aktivita útočníků - probíhající útok na FTP servery, které se vyskytují na stejné IP adrese, jako aktivní WEB server.
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.
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.
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.
select * ( select * from tab1 join (select rec, max(datum) from tab2 where krok = "kroka") as s1 on tab1.rec = s2.rec join (select rec, max(datum) from tab2 where krok = "krokb") as s2 on tab1.rec = s2.rec ) where s1.datum > s2.datum
select t1.rec, max(krok_a.datum) from t1, t2 krok_a where t1.rec = krok_a.rec and krok_a.krok = 'KrokA' and not exists( select 0 from t2 krok_b where krok_b.rec = t1.rec and krok_b.krok = 'KrokB' and krok_b.datum > krok_a.datum) group by t1.reckonkretne toto lze udelat jednoduchym group by jen nad tabulkou t2, coz doporucuju jako cviceni.
Asi tak nějak (čistě syntaktický přepis Vašeho zadání):
select t1.Rec
from TAB1 as t1
join TAB2 as t2
on t1.Rec=t2.Rec and t.Krok='KrokA' and t1.Typ=1
left join (
select Rec,min(Datum) as dt
from TAB2
where Krok='KrokB'
group by Rec
) as t3
on t2.Rec=t3.Rec and t2.Datum < t3.dt
where t3.Rec is null
Kdyby jste uvedl co je v TAB2 (primárním) klíčem, tak to možná šlo ještě jednodušeji ( jedna agregace plus jeden join ).
Zase jen syntaktický přepis (bez jakékoliv znalosti skutečného problému)
select
Rec
,max(case when Krok='KrokA' then Date else null end ) -- poslední datum pro KrokA
from TAB2
group by Rec
having
max( case when Krok='KrokA' then Date else null end ) -- nejvyssi datum pro KrokA ( = poslední)
> -- je větší než
max( case when Krok='KrokB' then Date else null end ) -- nejvyšší datum pro KrokB
Ještě jsem zapoměl na dva okrajové případy, kdy jeden z kroků není k dispozici
select
Rec
,max(case when Krok='KrokA' then Date else null end ) -- poslední datum pro KrokA
from TAB2
group by Rec
having
max( case when Krok='KrokA' then Date else null end ) is not null -- existuje krokA
and -- a zároveň
(
max( case when Krok='KrokA' then Date else null end ) -- nejvyssi datum pro KrokA ( = poslední)
> -- je větší než
max( case when Krok='KrokB' then Date else null end ) -- nejvyšší datum pro KrokB
or -- nebo se krokB nedohledá
max( case when Krok='KrokB' then Date else null end ) is NULL
)
Tiskni
Sdílej: