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 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
dnes 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 3
dnes 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 1
včera 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 17
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 30
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 3
17.2. 09:00 | Nová verze

Bylo vydáno Ubuntu 16.04.2 LTS, tj. druhé opravné vydání Ubuntu 16.04 LTS s kódovým názvem Xenial Xerus. Přehled novinek v poznámkách k vydání a v přehledu změn.

Ladislav Hagara | Komentářů: 56
17.2. 06:00 | Zajímavý článek

Pavel Tišnovský se v dvoudílném článku na MojeFedora.cz věnuje tvorbě pluginů (modulů) pro bitmapový grafický editor GIMP. Pomocí pluginů lze GIMP rozšiřovat o další funkce. Implementovat lze například nové filtry nebo pomocné utility pro tvorbu animací či poloautomatickou retuš snímků.

Ladislav Hagara | Komentářů: 6
16.2. 23:32 | Komunita

Do 30. března se lze přihlásit do dalšího kola programu Outreachy, jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 30. května do 30. srpna 2017, v participujících organizacích lze vydělat 5 500 USD. Jedná se již o 14. kolo tohoto programu.

Ladislav Hagara | Komentářů: 11
16.2. 23:13 | Nová verze

Byla vydána verze 0.92.1 svobodného multiplatformního vektorového grafického editoru Inkscape. Přehled novinek v poznámkách k vydání. Řešen je mimo jiné problém s verzí 0.92, jež rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Více v příspěvku na blogu Davida Revoye, autora open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 668 hlasů
 Komentářů: 53, poslední dnes 18:38
Rozcestník
Reklama

Dotaz: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky

8.4.2015 19:07 Jiri Tomasek
Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
Přečteno: 641×
Ahoj,

predstavme si, ze mame tuto sql tabulku:

identifikator skore
a 13
a 12
a 15
a 14
b 3
b 5
b 7
chci ji transformovat na tabulku, kde budou ponechany max 3 radky pro kazdy identifikator, ktere maji nejvetsi skore. Tedy aby "a 12" bylo vyfiltrovano. Jde to nejak jednoduse?

(BTW Proc to chci: potrebuji totiz prumer 3 nejvetsich skore pro kazdy identifikator. Ano, to by asi slo primo pres nejakou agregacni funkci, ale ta defaultne nejspis neexistuje. Proto zkousim tabulku nejdrive vyfiltrovat a pak je to snadne.)

Řešení dotazu:


Odpovědi

Řešení 1× (karl82)
okbob avatar 8.4.2015 19:51 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
Technik jak tento problém vyřešit je několik, jeden z nejjednodušších je použití window funkce:
postgres=> select * from t;
 x | y  
---+----
 a | 13
 a | 12
 a | 15
 a | 14
 b |  3
 b |  5
 b |  7
(7 rows)

postgres=> select x,y from (select rank() over(partition by x order by y desc), x, y from t) s where rank <= 3;
 x | y  
---+----
 a | 15
 a | 14
 a | 13
 b |  7
 b |  5
 b |  3
(6 rows)
Je to dobrá úloha na naučení se trochu netriviálního SQL (naučit se všechny varianty).
okbob avatar 8.4.2015 19:53 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
Jinak přes agregační funkce by to vyřešit nešlo - ty agregují nikoliv filtrují.
9.4.2015 11:43 Jiri Tomasek
Rozbalit Rozbalit vše Re: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
Uzasny! Diky za rozsireni obzoru.

Agregacni funkce - myslel jsem napsat si vlastni, neco jako

SELECT id, PRUMER_NEJVSSICH_TRI(skore) GROUP BY id;
okbob avatar 9.4.2015 12:20 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
agregacni funkce vraci skalarni (jednu) hodnotu - takze to z principu nejde. Ale mozna je to o terminologii - mozna jste mel na mysli window funkce :)
9.4.2015 13:01 Jiri Tomasek
Rozbalit Rozbalit vše Re: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
Jasne, vsak PRUMER_NEJVYSSICH_TRI() prece je skalarni hodnota :-)

Jen jsme si asi nerozumeli, ta agregacni funkce by vyresila trochu jiny problem nez filtrovani - viz text za BTW v puvodni otazce.
okbob avatar 9.4.2015 17:59 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
Aha, to jsem si neprecetl pozorne otazku. Pak by to slo.
17.4.2015 14:17 rich
Rozbalit Rozbalit vše Re: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
agregaci muzes pouzit primo v dotazu... netreba vytaret dalsi funkce
4.5.2015 18:51 Chobotnice
Rozbalit Rozbalit vše Re: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
Pokud se to skore ma opakovat, chces asi spis dense rank nez rank.
Josef Kufner avatar 20.4.2015 15:49 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
Dá se to naprasit pomocí několika subselectů:
SELECT t1.id, (
  SELECT AVG(t2.skore)
  FROM (
    SELECT t3.skore
    FROM t AS t3
    WHERE t3.id = t1.id
    ORDER BY t3.skore DESC
    LIMIT 3
  ) AS t2
) AS prumer_3_nejvyssich
FROM t as t1
GROUP BY t1.id
ORDER BY t1.id
Hello world ! Segmentation fault (core dumped)
21.4.2015 09:49 Jiri Tomasek
Rozbalit Rozbalit vše Re: Postgres: filtrovani na zaklade vztahu mezi jednotlivymi radky
No vida, to je taky hezky reseni :)

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.