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í
×
včera 11:44 | Zajímavý článek

Arsenij Zinčenko v zápisku sdílí technické poznámky o tom, co je to „klíčenka“ (keyring) v Linuxu a v desktopovém prostředí, jak to souvisí se Secret Service a D-Bus, včetně příkladů. Význam těchto služeb spočívá v uložení a následném poskytování autentizačních údajů.

Fluttershy, yay! | Komentářů: 0
7.12. 01:44 | Nová verze

V únoru 2014 bylo hlasováním rozhodnuto, že výchozím init systémem v Debianu je systemd. V listopadu stejného roku bylo hlasováním rozhodnuto, že o podpoře dalších init systémů v Debianu není celoprojektové hlasování nutné. Po pěti letech už ale hlasování o init systémech a systemd nutné je. Vybírá se z 8 možností. Výsledek hlasování bude zveřejněn po 27. prosinci.

Ladislav Hagara | Komentářů: 30
7.12. 00:11 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot, se rozhodl, že svůj komiks vydá také knižně a ve vlastní režii. Komiks již knižně vyšel ve francouzštině ve vydavatelství Glénat. David Revoy jej vydá v angličtině a použije pouze svobodný software. O své zkušenosti se dělí ve dvou příspěvcích na svém blogu. Z plánovaných dvou týdnů práce se staly dva měsíce. Vydání před Vánocemi se nestihne. Kontrolní výtisk má příliš jasné barvy, obrázky v knihách od Glénatu vypadají mnohem lépe, …

Ladislav Hagara | Komentářů: 1
6.12. 20:44 | IT novinky

Mezinárodní konsorcium W3C (World Wide Web Consortium) vydalo verzi 1.0 základní specifikace WebAssembly a po HTML, CSS a JavaScriptu prohlásilo WebAssembly za čtvrtý oficiální jazyk pro web.

Ladislav Hagara | Komentářů: 16
6.12. 13:33 | Komunita

Hlasování o obrázku v okně O Inkscapu 1.0 pokračuje druhým kolem. Ze 124 obrázků postoupilo do finálního hlasování 5 s nejvíce hlasy. Výsledek hlasování bude zveřejněn po jeho ukončení, tj. po 15. prosinci.

Ladislav Hagara | Komentářů: 8
6.12. 02:11 | IT novinky

Společnost Purism představila mobilní telefon Librem 5 USA. Jedná se o telefon Librem 5 vyráběný v USA. Předobjednat jej lze za 1 999 dolarů. Librem 5 lze předobjednat za 699 dolarů.

Ladislav Hagara | Komentářů: 37
5.12. 22:22 | Nová verze

Příspěvek na blogu organizace Electronic Frontier Foundation (EFF) informuje, že Certbot, tj. oficiální klient certifikační autority Let’s Encrypt, dospěl do nové stabilní verze 1.0. Oficiálně tak byla ukončena beta fáze jeho vývoje. Certbot byl představen v květnu 2016.

Ladislav Hagara | Komentářů: 0
5.12. 15:55 | Zajímavý software

Mozilla vydala novou verzi 0.6 svobodného softwaru DeepSpeech pro převod řeči na text. Přehled novinek v příspěvku na blogu Mozilla Hacks.

Ladislav Hagara | Komentářů: 4
4.12. 17:33 | Zajímavý projekt

Dnes měl na YouTube premiéru krátký sci-fi film SKYWATCH. Colin Levy na něm strávil téměř 6 let. Pro vytvoření 3D grafiky byl vybrán Blender. Film byl z části financován z kampaně na Kickstarteru.

Ladislav Hagara | Komentářů: 3
4.12. 05:55 | Zajímavý software

Netflix uvolnil framework pro datovou vědu Metaflow jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache 2.0.

Ladislav Hagara | Komentářů: 44
Jaké hodinky nosíte (nejčastěji)?
 (23%)
 (6%)
 (17%)
 (54%)
Celkem 524 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: 315×
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.