Po více než 7 měsících vývoje od vydání verze 6.8 byla vydána nová verze 6.9 svobodného open source redakčního systému WordPress. Kódové jméno Gene bylo vybráno na počest amerického jazzového klavíristy Gene Harrise (Ray Brown Trio - Summertime).
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za listopad (YouTube).
Google Chrome 143 byl prohlášen za stabilní. Nejnovější stabilní verze 143.0.7499.40 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 13 bezpečnostních chyb.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,2 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,42 %. Procesor AMD používá 66,72 % hráčů na Linuxu.
Canonical oznámil (YouTube), že nově nabízí svou podporu Ubuntu Pro také pro instance Ubuntu na WSL (Windows Subsystem for Linux).
Samsung představil svůj nejnovější chytrý telefon Galaxy Z TriFold (YouTube). Skládačka se nerozkládá jednou, ale hned dvakrát, a nabízí displej s úhlopříčkou 10 palců. V České republice nebude tento model dostupný.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.11.1. Přehled novinek v Changelogu.
Byla vydána nová verze 15.0 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04 1.1 a 20.04 OTA-11. Vedle oprav chyb a drobných vylepšení je řešen také středně závažný bezpečnostní problém.
I letos vyšla řada ajťáckých adventních kalendářů: Advent of Code 2025, Perl Advent Calendar 2025, CSS Advent Calendar 2025, Advent of A11Y 2025, Advent of AI Security 2025, Advent of Agents (in Google) 2025, Advent of Svelte 2025, …
insert into hodnoty (id,hodnota,datum_od,datum_do) values (1,3.300,'2018-01-01','2019-12-31'), (1,3.600,'2020-01-01','2020-11-31'), (1,3.850,'2021-01-01','2021-12-31'), (1,4.000,'2022-01-01','2022-12-31'), (1,4.350,'2023-01-01','2023-12-31'), (1,4.700,'2024-01-01','3333-03-03'), (2,3.300,'2018-01-01','2019-12-31'), (2,3.600,'2020-01-01','2020-12-31'), (2,3.850,'2021-01-01','2021-12-31'), (2,4.000,'2022-01-01','2022-12-31'); (2,4.350,'2023-01-01','2023-12-31'), (2,4.700,'2024-01-01','3333-03-03'), (3,2.848,'2018-01-01','2018-08-31'), (3,2.943,'2018-09-01','2018-12-31'), (3,3.188,'2019-01-01','2019-12-31'), (3,3.555,'2020-01-01','2020-12-31'), (3,3.819,'2020-12-01','2021-12-31'), (3,3.961,'2022-01-01','2022-12-31'), (3,4.291,'2023-01-01','2023-12-31'), (3,4.597,'2024-01-01','3333-03-03');su v nej id ktore maju urcitu casovu platnost. je mozne priamo v sql zistit, ci sa pre jednotlive id datumove intervaly neprekryvaju(t.j. ci id nema v dany datum viacero moznych hodnot) a zaroven ci nie su v intervaloch medzery(t.z. ci neexistuje datum pre ktory id nema ziadnu hodnotu)? v priklade ako najmensi mozny datum je 2018-01-01 a najvyssi 3333-03-03. pre id=1 napr. chybaju hodnoty pre december 2020. pre id=3 su zase pre interval datumov december 2020 platne 2 hodnoty(3.555 aj 3.819 co je nespravne). je mozne tieto chyby v integrite dat nejako lahko vyselektovat? dakujem.
select * from hodnoty h1 join hodnoty h2 on daterange(h1.datum_od, h1.datum_do, '[]') && daterange(h2.datum_od, h2.datum_do, '[]') and h1.id < h2.id;A jestli něco nechybí můžeš zjistit tak, že porovnáš součty délek intervalů s intervalem (nejmenší datum, největší). V mariadb možná bude potřeba napsat vlastní podmínky na porovnání intervalů, nevím, jestli je tam na to funkce.
with t1 as(
select
id,
datediff(max(datum_do), min(datum_od)) + 1 as celkovy_pocet_dni
from
hodnoty
group by
id
),
t2 as(
select
id,
sum(datediff(datum_do, datum_od) + 1) as sucet_intervalov
from
hodnoty
group by
id
),
t3 as (
select
t1.id as id,
celkovy_pocet_dni - sucet_intervalov as rozdiel
from
t1
left join t2 on t2.id = t1.id
having
rozdiel != 0
)
select
id,
case
when rozdiel < 0 then 'duplicita datumov'
when rozdiel > 0 then 'chybajuci interval datumov'
end as chyba
from
t3
order by
t3.id
(1,1.000,'2018-01-01','2018-12-31'), (1,1.000,'2018-01-01','2018-12-31'), (1,1.000,'2020-01-01','2020-12-31')
-- kontrola ci datum_do nie je mensi ako datum_od
select
*,
datediff(h.datum_do, h.datum_od) as pocet_dni
from
hodnoty as h
having
pocet_dni < 0
order by
h.id,
h.datum_od,
h.datum_do;
-- kontrola ci intervaly datumov na seba plynulo nadvazuju
with t1 as (
select
h.id,
lag(h.datum_do, 1) over (
PARTITION BY h.id
order by
h.id,
h.datum_od,
h.datum_do
) as datum_pred,
h.datum_od,
h.datum_do,
lead(h.datum_od, 1) over (
PARTITION BY h.id
order by
h.id,
h.datum_od,
h.datum_do
) as datum_po
from
hodnoty as h
order by
h.id,
h.datum_od,
h.datum_do
)
select
id,
datum_pred,
case
when datediff(datum_od, datum_pred) is NULL then 'OK'
when datediff(datum_od, datum_pred) = 1 then 'OK'
else 'CHYBA'
end as stav_1,
datum_od,
datum_do,
case
when datediff(datum_po, datum_do) is NULL then 'OK'
when datediff(datum_po, datum_do) = 1 then 'OK'
else 'CHYBA'
end as stav_2,
datum_po
from
t1
having
stav_1 = 'CHYBA'
or stav_2 = 'CHYBA'
skusil som to vyriesit pomocou LAG a LEAD.
rozdelil som to do dvoch krokov.
najskor sa skontroluje ci su v poriadku jednotlive datumove intervaly.
a v druhom kroku sa skontroluje ci intervaly pre jednotlive id na seba nadvazuju a neprekryvaju sa. vie mi to niekto skontrolovat ci tam zase nie je nejaka chyba? nejaky pripad pri ktorom by kontrola zlyhala?
select
A.*
,B.*
from hodnoty A
join hodnoty B on A.id = b.id and A.datum_do >= B.datum_od and A.datum_od <= B.datum_do
řešení vychází z následujícího obrázku, který ukazuje možné překryvy
A
+----------------+
o x
o x o x o x
+-----+ +----+ +-----+
B B B
Díry v jistém smyslu jsou problematičtější, protože vždycky budete mít díru. A to na začátku a na konci.
select
A.*
,min(B.datum_od)
from hodnoty A
join hodnoty B on A.id = B.id and A.datum_do < B.datum_od
group by A.*
having A.datum_do + interval '1' day < min(B.datum_od)
Rychlejší řešení děr je pomocí analytických funkcí. Konkrétně funkce LAG a LEAD
SELECT id, hodnota, datum_od, datum_do
FROM (
SELECT id, hodnota, datum_od, datum_do,
LEAD(datum_od) OVER (PARTITION BY id ORDER BY datum_od) AS next_datum_od
FROM hodnoty
) AS t
WHERE datum_do >= next_datum_od;
SELECT id, hodnota, datum_od, datum_do
FROM (
SELECT id, hodnota, datum_od, datum_do,
LAG(datum_do) OVER (PARTITION BY id ORDER BY datum_od) AS prev_datum_do
FROM hodnoty
) AS t
WHERE datum_od > DATE_ADD(prev_datum_do, INTERVAL 1 DAY);
Tiskni
Sdílej: