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 14:11 | IT novinky

    Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Zajímavý software

    Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    včera 11:55 | IT novinky

    Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.

    Ladislav Hagara | Komentářů: 5
    včera 04:33 | Bezpečnostní upozornění

    Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.

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

    Byla vydána nová verze 1.25 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    12.8. 13:44 | Nová verze

    Byla vydána beta verze Linux Mintu 22.2 s kódovým jménem Zara. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze novou XApp aplikaci Fingwit pro autentizaci pomocí otisků prstů nebo vlastní fork knihovny libAdwaita s názvem libAdapta podporující grafická témata. Linux Mint 22.2 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 0
    12.8. 13:00 | IT novinky

    Provozovatel internetové encyklopedie Wikipedie prohrál v Británii soudní spor týkající se některých částí nového zákona o on-line bezpečnosti. Soud ale varoval britského regulátora Ofcom i odpovědné ministerstvo před zaváděním přílišných omezení. Legislativa zpřísňuje požadavky na on-line platformy, ale zároveň čelí kritice za možné omezování svobody slova. Společnost Wikimedia Foundation, která je zodpovědná za fungování

    … více »
    Ladislav Hagara | Komentářů: 2
    12.8. 12:55 | Nová verze

    Byla vydána verze 2.0.0 nástroje pro synchronizaci dat mezi vícero počítači bez centrálního serveru Syncthing (Wikipedie). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 3
    12.8. 12:33 | IT novinky

    Americký prezident Donald Trump se v pondělí osobně setkal s generálním ředitelem firmy na výrobu čipů Intel Lip-Bu Tanem. Šéfa podniku označil za úspěšného, informují agentury. Ještě před týdnem ho přitom ostře kritizoval a požadoval jeho okamžitý odchod. Akcie Intelu v reakci na schůzku po oficiálním uzavření trhu zpevnily asi o tři procenta.

    Ladislav Hagara | Komentářů: 14
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (52%)
     (18%)
     (4%)
     (5%)
     (3%)
     (1%)
     (1%)
     (16%)
    Celkem 390 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    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: 758×
    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.