Na webu konference Den IPv6, která se konala 4. června v Národní technické knihovně v pražských Dejvicích, jsou nyní k dispozici všechny prezentace (v PDF) a jejich videozáznamy. Organizátory konference byly i letos sdružení CESNET, CZ.NIC a NIX.CZ.
Byla vydána nová verze 9.1.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Vypíchnout lze vylepšené vyhledávání nebo podporu Pixel Motion Photos. Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 3. a 4. října na FIT ČVUT v pražských Dejvicích. Příjem témat poběží do konce prázdnin, pak proběhne veřejné hlasování a následně sestavení programu.
Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.
Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.
Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).
aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.
Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.
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.rec
konkretne 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: