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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 2
včera 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 20
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 2
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 768 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: hledaní podle id ve vnořeném selektu v postgres

18.6.2014 17:13 TRX
hledaní podle id ve vnořeném selektu v postgres
Přečteno: 698×
Ahoj ... mám v postgres poddotaz ze kterého potřebuju vycucnout jmeno_cloveka, maximalni schopnost, ale toho člověka hledám podle id z předešlé tabulky a to id nemůžu dát do tohoto selektu. Když udělám tohle tak mi to řekne že to id_cloveka neexistuje, ale jak bych to měl řešit?

...
JOIN (
     SELECT
          MAX (schopnost) as maximalni_ucinek,
          jmeno_cloveka
     FROM TRX
     GROUP BY jmeno_cloveka
) AS jmenny_seznam
ON elitni_radky.elitni = jmenny_seznam.id_cloveka;
 
---
 
ERROR:  column jmenny_seznam.id_cloveka does not exist
ŘÁDKA 44: ...                  ON elitni_radky.elitni = jmenny_seznam....
když přidám id_cloveka do dotazu jak se nabízí... dostanu error...
must appear in the GROUP BY clause or be used in an aggregate function
a když ho dám do group by tak už je to nesmysl protože já potřebuju jenom skupinu jmeno_cloveka. když tam přidám id_cloveka bude tolik skupin kolik je ID takže všechny. což je nesmysl.

takže co asi bych s tím měl dělat?

kdyžtak děkuju

Odpovědi

19.6.2014 08:22 Filip Jirsák
Rozbalit Rozbalit vše Re: hledaní podle id ve vnořeném selektu v postgres
Bez struktury dat a celého SELECTu se to dost těžko luští. Možná jsem ten popis jen nerozluštil správně, ale připadá mi zmatený. Když vytváříte skupinu podle jmeno_cloveka, ale tvrdíte, že id_cloveka by tu skupinu rozbilo na ještě menší skupiny, vypadá to, jako by pro jedno id_cloveka existovalo několik různých jmen. Což je divné pojmenování sloupců, protože jeden člověk snad má jen jedno jméno, ne? Pak ale zase píšete, že id_cloveka by vám to rozbilo na všechny skupiny, což – jestli vás chápu dobře – znamená, že id_cloveka je v té tabulce unikátní klíč. Pak ale nechápu, proč tam něco spojujete do skupin a počítáte maximum, když je to jen jeden řádek.

Takže by to chtělo popsat, jaká je struktura dat a co z nich chcete dostat.
19.6.2014 13:01 TRX
Rozbalit Rozbalit vše Re: hledaní podle id ve vnořeném selektu v postgres
Jo to je fakt že je to vlastně matoucí... vysvětlím to. je to hra. jméma jsou totožná v mnoha případech. to je v pořádku. id_cloveka je unikátní klíč a jméno člověka tam může být stejné třeba 100x, ale pokud má stejné jakoby jméno spadá do stejné skupiny. dá se to chápat jako že místo jméno_cloveka může být jmeno_profese. V podstatě mě hlavně zajímá jak se tenhle případ dá řešit v postgres... v MySQL bych nemusel přidat do group by id_cloveka a měl bych vlastně vyhráno. ale tady v postgres to musim udělat. čím nastává problém jak to udělat když nemůžu rozbít tu strukturu.
19.6.2014 15:12 Filip Jirsák
Rozbalit Rozbalit vše Re: hledaní podle id ve vnořeném selektu v postgres
Jde především o to, jak vypadají data, jaké jsou mezi nimi vazby, které sloupce jsou unikátní. V MySQL byste nemusel přidávat id_cloveka do GROUP BY, a MySQL by vám z té skupiny vybrala nějaké náhodné id_cloveka. To ale asi nechcete. Takže pořád platí otázka, jak vypadá struktura dat. Z toho, co jste teď napsal, to totiž může vypadat, že máte tabulku lidí a tabulku jmen/profesí:
Clovek
------
id_cloveka PRIMARY KEY

TRX
---
id_cloveka FOREIGN KEY
jmeno_cloveka
schopnost
Z těchto tabulek pak chcete udělat seznam všech jmeno_cloveka pro jednotlivé lidi a pro každé jméno vypsat nejvyšší hodnotu.

Takže třeba pro data
Clovek
------
1
2
3

TRX
---
1         pekař      100
1         truhlář    50
1         pekař      200
1         zedník     30
2         pekař      60
2         zámečník   50
byste chtěl vypsat
id_cloveka  jmeno_cloveka   maximum
-----------------------------------
1           pekař           200
1           truhlář         50
1           zedník          30
2           pekař           60
2           zámečník        50
Pak by ale byl správně ten váš SELECT s tím GROUP BY i přes id_cloveka:
SELECT id_cloveka, jmeno_cloveka, MAX(schopnost) AS maximum
FROM TRX
GROUP BY id_cloveka, jmeno_cloveka
Pokud k tomu chcete přidat další informace třeba z tabulky Clovek, normálně si ji k tomu přijoinujte.

Otázkou pak je, zda to jmeno_cloveka opravdu mají být volné texty a chcete to seskupovat podle toho, že je ten text náhodou shodný, nebo zda by to spíš neměl být číselník. Když děláte GROUP BY přes textový sloupec, mělo by vás to praštit do očí a měl byste se zamyslet, zda máte správně strukturu tabulek.
25.6.2014 23:58 Logik
Rozbalit Rozbalit vše Re: hledaní podle id ve vnořeném selektu v postgres
Hele dej sem strukturu tabulek, bez ní Ti těžko něco poradíme. Stačí SQL dump (bez dat nebo s málo daty).

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.