abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 20:11 | IT novinky

GOG nabízí klasickou cRPG Wasteland 2 do pátku 13. prosince 2019 zdarma. Hra je k dispozici pro Linux (oficiálně Ubuntu LTS) a bez DRM. Stojí za ní inXile Entertainment, navazující na Interplay, od nějž pochází původní Wasteland (1988) či Fallout.

Fluttershy, yay! | Komentářů: 0
dnes 17:11 | Komunita

osxfuse, implementace FUSE (Filesystem in Userspace) na macOS, již není open source. Autor se prostě rozhodl zdrojové kódy pod licencí BSD dál nešířit. Diskuse na Hacker News.

Ladislav Hagara | Komentářů: 12
dnes 10:44 | Zajímavý projekt

Na Humble Bundle běží akce Humble Paradox Management Bundle. Počítačové hry v balíčcích za 1 dolar, 7,91 dolaru a 18 dolarů běží také na Linuxu. Jedná se o série Prison Architect, Cities in Motion, Cities: Skylines a Surviving Mars.

Ladislav Hagara | Komentářů: 0
včera 22:55 | Bezpečnostní upozornění

Byl vydán Git ve verzích 2.24.1, 2.23.1, 2.22.2, 2.21.1, 2.20.2, 2.19.3, 2.18.2, 2.17.3, 2.16.6, 2.15.4 a 2.14.6. Opraveno je 9 bezpečnostních chyb: CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, CVE-2019-1387 a CVE-2019-19604, viz například Ubuntu USN-4220-1.

Ladislav Hagara | Komentářů: 0
včera 22:33 | Nová verze

Google Chrome 79 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 79.0.3945.79 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře. Opraveno bylo 51 bezpečnostních chyb. Za nalezení nejvážnější z nich bylo vyplaceno 20 tisíc dolarů.

Ladislav Hagara | Komentářů: 0
včera 22:11 | Nová verze

V září Microsoft potvrdil, že portuje klienta Microsoft Teams na Linux. Dnes byla vydána první veřejná verze k testování. Ke stažení jsou balíčky .deb a .rpm. Microsoft Teams je firemní platforma, která umožňuje textovou komunikaci, video hovory, datové úložiště pro ukládání souborů (na těchto souborech lze také spolupracovat) a integraci dalších aplikací do tohoto prostředí. Služba je integrována v předplatném Office 365.

Ladislav Hagara | Komentářů: 8
včera 15:22 | IT novinky

Společnost PFU (divize Fujitsu) představila (prezentace v japonštině) novou generaci Happy Hacking Keyboard, řady klávesnic původně navržené Eiiči Wadou pro unixové systémy začátkem 90. let – bez nutnosti přidání dalších fyzických kláves. Nové modely (Hybrid, Hybrid Type-S a Classic) navazují na řadu Pro 2, stále je tedy vyrábí Topre a používají příslušné kapacitní spínače, všechny se ale nově připojují přes USB-C a „Hybrid“ navíc podporuje i Bluetooth.

Fluttershy, yay! | Komentářů: 42
včera 12:22 | Pozvánky

Konference DevConf.CZ 2020, již dvanáctý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne v Brně na FIT VUT od 24. do 26. ledna 2020. Zveřejněn byl program konference a spuštěna byla povinná a bezplatná registrace.

Ladislav Hagara | Komentářů: 0
9.12. 22:55 | Zajímavý článek

Příspěvek Prozkoumejte Česko na Wikidatech: druhý díl zajímavých Wikidata Queries na blogu Wikimedie Česká republika je volným pokračováním příspěvku Prozkoumejte Česko na Wikidatech: 10 nejlepších Queries datového žurnalisty z července 2017. Tentokrát jsou díky Wikidatům a SPARQL zobrazeny Železniční tratě v Česku, Díly pořadu Gebrian VS na mapě nebo Citace vědeckých článků – srovnání českých univerzit, na níž publikující autoři působí.

Ladislav Hagara | Komentářů: 0
9.12. 19:44 | Komunita

Ovlivnit Ubuntu 20.04 LTS lze vyplněním dotazníku. Více v příspěvku na blogu Ubuntu.

Ladislav Hagara | Komentářů: 0
Jaké hodinky nosíte (nejčastěji)?
 (23%)
 (5%)
 (18%)
 (54%)
Celkem 558 hlasů
 Komentářů: 135, poslední 6.12. 20:54
Rozcestník

www.AutoDoc.Cz

Dotaz: Neumím použít agregační funkci

25.11. 13:33 Paulus | skóre: 15 | Jihlava
Neumím použít agregační funkci
Přečteno: 331×
Dobrý den, z následující tabulky:

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

bych 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:00

Pokud 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:


Odpovědi

Řešení 1× (Paulus (tazatel))
xkucf03 avatar 25.11. 15:20 xkucf03 | skóre: 48 | blog: xkucf03
Rozbalit Rozbalit vše Re: Neumím použít agregační funkci

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.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
26.11. 11:11 Paulus | skóre: 15 | Jihlava
Rozbalit Rozbalit vše Re: Neumím použít agregační funkci
Funguje, jak má. Děkuji moc za pomoc.
Řešení 1× (Paulus (tazatel))
25.11. 19:26 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Neumím použít agregační funkci
Bez window funkcí si musíte v jednom SELECTu seskupit řádky podle Případ a ke každé skupině vybrat minimální 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)
25.11. 19:28 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Neumím použít agregační funkci
A ještě by bylo vhodné, aby na dvojici Případ + CASPREPNUTI byl unikátní index. Kdyby se v databázi vyskytla duplicita, vrátí vám v tom mém dotazu databáze všechny záznamy, které v té skupině nejmenší čas přepnutí, tj. měl byste tam skupinu duplicitně.
26.11. 11:09 Paulus | skóre: 15 | Jihlava
Rozbalit Rozbalit vše Re: Neumím použít agregační funkci
Dobrý den,

děkuji moc za pomoc. Něco takového jsem předpokládal, jen jsem nevěděl, jestli neexistuje snazší cesta.

PN

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.