Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.
Americký výrobce čipů Nvidia získal od vlády prezidenta Donalda Trumpa souhlas s prodejem svých pokročilých počítačových čipů používaných k vývoji umělé inteligence (AI) H20 do Číny. Prodej těchto čipů speciálně upravených pro čínský trh by tak mohl být brzy obnoven, uvedla firma na svém blogu. Americká vláda zakázala prodej v dubnu, v době eskalace obchodního sporu mezi oběma zeměmi. Tehdy to zdůvodnila obavami, že by čipy mohla využívat čínská armáda.
3D software Blender byl vydán ve verzi 4.5 s prodlouženou podporou. Podrobnosti v poznámkách k vydání. Videopředstavení na YouTube.
Open source webový aplikační framework Django slaví 20. narozeniny.
V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.
Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.
Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.
Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
Zdravim.
Mam nasledujici problem. Mam ulozeny IP adresy v 5 tabulkach. Potreboval bych pomoci SQL dotazu vybrat vsechny IP adresy ze vsech tabulek, "zgrupovat" duplicitni zaznamy a zaroven spocitat, kolikrat se ktera IP adresa ve vsech tabulkach nachazela. Pro jednu tabulku jsem to resil naledovne - "SELECT IP, COUNT(*) as Pocet FROM tabulka GROUP BY IP", ale pro vice tabulek jsem bezradny.
dekuji za pomoc Petr
btw. "nalit" vsechny data do jedne tabulky se mi nechce, protoze v kazde tabulce je cca 0,5 mil zaznamu.
Diky, toto mi bohuzel nepomohlo - neslo o JOIN ale o UNION (kde je ale problem s funkci COUNT)
Vyresil jsem to tak, ze jsem vytvoril view do ktereho jsem vybral IP adresy ze vsech tabulek (pomoci UNION ALL) a nasledny COUNT a GROUP BY jsem udelal nad timto view.
Pokud by se nekomu podarilo nacpat vse do "jednoho" SQL dotazu, tak pro zajimovost prosim o zaslani. Alespon bych udelal benchmark co je rychlejsi
Neznám strukturu tabulek, ale napadá mě toto:
SELECT ip_address, COUNT(1) FROM (SELECT ip AS ip_address FROM ip1 UNION ALL SELECT ip FROM ip2) GROUP BY ip_address /
Pokud tě zajímají hlubší statistiky, například groupovat i po tabulkách (postupné součty), jde to udělat takto:
SELECT ip_address, table_type, COUNT(1) FROM (SELECT ip AS ip_address, 1 AS table_type FROM ip1 UNION ALL SELECT ip, 2 FROM ip2) GROUP BY ip_address, table_type /
Postupné součty:
SELECT table_type, ip_address, COUNT(1) FROM (SELECT ip AS ip_address, 1 AS table_type FROM ip1 UNION ALL SELECT ip, 2 FROM ip2) GROUP BY ROLLUP ( table_type, ip_address) /
Na databázích, které nepodporují GROUP BY ROLLUP
, se to musí trošku vochcat:
SELECT table_type, ip_address, COUNT(1) FROM (SELECT ip AS ip_address, 1 AS table_type FROM ip1 UNION ALL SELECT ip, 2 FROM ip2) GROUP BY table_type, ip_address UNION ALL SELECT table_type, NULL, COUNT(1) FROM (SELECT ip AS ip_address, 1 AS table_type FROM ip1 UNION ALL SELECT ip, 2 FROM ip2) GROUP BY table_type UNION ALL SELECT NULL, NULL, COUNT(1) FROM (SELECT ip AS ip_address, 1 AS table_type FROM ip1 UNION ALL SELECT ip, 2 FROM ip2) /
Z toho je vidět, že se musí ty tabulky probrousit několikrát, což není dvakrát cool. Ale naštěstí Oracle i DB2 je v klidu.
Co se výkonu týče, byl bych úplně vklidu. Zrovna dneska jsem třeba dopsal SELECT
, který brousí tabulky s několika miliony záznamů. Je to celkem zajímavý report, tak mě to bavilo. A výsledková sada je u klienta do 30 sekund. Ani jsem neřešil indexy
protože by to stejně při tak malém množství vyšlo na FULL SCAN.
Dobrá, tak vážně. Pokud s datovou strukturou nemůžeš pohnout, zajímal bych se o materializované pohledy. Jak jsem to pochopil, spíš se u tebe jedná o nějaké logy, takže spíš pod tlakem smažíš nové záznamy. Materializovaný pohled umí být FAST REFRESH ON COMMIT
, což by mělo jít na MySQL nějak očurat (ano, fackuju se) triggerem. Kdyžtak kdykoli můžeš ty logy odlejt někam do historie, udělat z nich agregát a k němu pak připočítávat (tabulka IP_AVG
obsahuje ten agregát tabulky IP1) (sakra, já jsem dneska nějakej dobrej; asi bych toho měl už nechat…):
SELECT NVL(x.ip, y.ip) AS ip, NVL(x.cnt, 0) + NVL(y.cnt, 0) AS cnt FROM (SELECT ip, COUNT(1) AS cnt FROM ip2 GROUP BY ip) x FULL OUTER JOIN (SELECT ip, cnt FROM ip_avg) y ON (x.ip = y.ip) /
Až na ten FULL OUTER JOIN
se mi to líbí. A ten jde obejít takto:
SELECT ip, SUM(cnt) FROM (SELECT ip, COUNT(1) AS cnt FROM ip2 GROUP BY ip UNION ALL SELECT ip, cnt FROM ip_avg) GROUP BY ip /
Jo. A místo NVL()
jde použít NULLIF()
.
A mimochodem: díky za zpříjemnění večera. Už jsem se bál, že se budu nudit.
P.S.: Jako obvykle: v příloze je skript na hraní; tak hodně štěstí!
Tiskni
Sdílej: