Společnost OpenAI představila svůj nejnovější AI model GPT-4o (o jako omni, tj. vše). Nově také "vidí" a "slyší". Videoukázky na 𝕏 nebo YouTube.
Ondřej Filip publikoval reportáž z ceremonie podpisu kořenové zóny DNS. Zhlédnout lze také jeho nedávnou přednášku Jak se podepisuje kořenová zóna Internetu v rámci cyklu Fyzikální čtvrtky FEL ČVUT.
Společnost BenQ uvádí na trh novou řadu monitorů RD určenou pro programátory. První z nich je RD240Q.
Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem nadále zůstává Frontier od HPE (Cray) s výkonem 1,206 exaFLOPS. Druhá Aurora má oproti loňsku přibližně dvojnásobný počet jader a dvojnásobný výkon: 1,012 exaFLOPS. Novým počítačem v první desítce je na 6. místě Alps. Novým českým počítačem v TOP500 je na 112. místě C24 ve Škoda Auto v Mladé Boleslavi. Ostravská Karolina, GPU
… více »GHC (Glasgow Haskell Compiler, Wikipedie), tj. překladač funkcionálního programovacího jazyka Haskell (Wikipedie), byl vydán ve verzi 9.10.1. Přehled novinek v poznámkách k vydání.
Po 9 týdnech vývoje od vydání Linuxu 6.8 oznámil Linus Torvalds vydání Linuxu 6.9. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.
Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.
Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.
Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.
Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].
Případ STAVDO CREATE_UZIVATEL CASPREPNUTI První SCHV TUMJAN 2018-03-26T14:01:37.000+02:00 První SCHV TUMJAN 2018-05-07T12:40:58.000+02:00 První SCHV TUMJAN 2018-05-30T12:47:06.000+02:00 První SCHVAL TUMJAN 2018-06-04T10:03:03.000+02:00 První SCHVAL KULSVA 2018-08-10T15:29:15.000+02:00 Druhý SCHVAL TUMJAN 2018-08-09T12:18:51.000+02:00 Druhý SCHV TUMJAN 2018-10-19T13:02:11.000+02:00 Druhý SCHV KULSVA 2018-11-23T14:09:05.000+01:00 Druhý SCHVAL KULSVA 2018-11-26T13:27:18.000+01:00bych chtěl vybrat za každý Případ vybrat takové řádky, které mají minimální datum STAVDO. Na hodnotě atributů STAVDO a CREATE_UZIVATEL mi nezáleží. Očekávám tedy výstup:
Případ STAVDO CREATE_UZIVATEL CASPREPNUTI První SCHV TUMJAN 2018-03-26T14:01:37.000+02:00 Druhý SCHVAL TUMJAN 2018-08-09T12:18:51.000+02:00Pokud použiju minimum na datum, nemohu použít
group by
na STAVDO a CREATE_UZIVATEL. Jak z toho ven?
Díky moc za pomoc,
Pavel Novák
Řešení dotazu:
Pomocí window funkcí takto:
#!/bin/bash data="Případ STAVDO CREATE_UZIVATEL CASPREPNUTI První SCHV TUMJAN 2018-03-26T14:01:37.000+02:00 První SCHV TUMJAN 2018-05-07T12:40:58.000+02:00 První SCHV TUMJAN 2018-05-30T12:47:06.000+02:00 První SCHVAL TUMJAN 2018-06-04T10:03:03.000+02:00 První SCHVAL KULSVA 2018-08-10T15:29:15.000+02:00 Druhý SCHVAL TUMJAN 2018-08-09T12:18:51.000+02:00 Druhý SCHV TUMJAN 2018-10-19T13:02:11.000+02:00 Druhý SCHV KULSVA 2018-11-23T14:09:05.000+01:00 Druhý SCHVAL KULSVA 2018-11-26T13:27:18.000+01:00"; dotaz="SELECT případ, stavDo, create_uzivatel, casPrepnuti FROM ( SELECT *, rank() OVER(PARTITION BY případ ORDER BY casPrepnuti) AS rank FROM csv ) WHERE rank = 1 ORDER BY případ DESC"; echo "$data" \ | sed -E 's/\t+/,/g' \ | relpipe-in-csv \ | relpipe-tr-sql --relation "první_ve_skupině" "$dotaz" \ | relpipe-out-tabular
první_ve_skupině: ╭─────────────────┬─────────────────┬──────────────────────────┬───────────────────────────────╮ │ Případ (string) │ STAVDO (string) │ CREATE_UZIVATEL (string) │ CASPREPNUTI (string) │ ├─────────────────┼─────────────────┼──────────────────────────┼───────────────────────────────┤ │ První │ SCHV │ TUMJAN │ 2018-03-26T14:01:37.000+02:00 │ │ Druhý │ SCHVAL │ TUMJAN │ 2018-08-09T12:18:51.000+02:00 │ ╰─────────────────┴─────────────────┴──────────────────────────┴───────────────────────────────╯ Record count: 2
DBMS je musí podporovat (např. v SQLite je to až od 3.25.0).
Případně v PostgreSQL to jde jednodušeji pomocí DISTINCT ON.
CASPREPNUTI
. V druhém SELECTu vezmete tyhle dvojice (Případ + CASPREPNUTI) a ke každé z nich si donačtete zbývající údaje z řádku. A samozřejmě ty dva SELECTy nebudete provádět za sebou, ale spojíte je do jednoho, např. pomocí JOINu.
SELECT * FROM table t JOIN (SELECT Případ, MIN(CASPREPNUTI) AS CASPREPNUTIFROM table GROUP BY Případ) g ON (t.Případ = g.Případ AND t.CASPREPNUTI= g.CASPREPNUTI)
Tiskni Sdílej: