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 23:00 | Nová verze

    Kryptografická knihovna OpenSSL byla vydána v nové verzi 4.0. Přehled změn v souboru CHANGES.md na GitHubu. Odstraněna byla podpora SSLv2 Client Hello a SSLv3. Ve výchozím nastavení byla zakázána podpora odmítnutých eliptických křivek v TLS dle RFC 8422. Přibyla například podpora Encrypted Client Hello (ECH, RFC 9849).

    Ladislav Hagara | Komentářů: 0
    včera 20:55 | Komunita

    curl up 2026, tj. setkání vývojářů a uživatelů curlu, proběhne opět v Praze. O víkendu 23. a 24. května v Pracovně.

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

    Aplikace pro ověřování věku uživatelů on-line platforem je technicky hotová a brzy bude k dispozici pro občany EU, oznámila dnes předsedkyně Evropské komise Ursula von der Leyenová. Půjde podle ní o bezplatné a snadno použitelné řešení, které pomůže chránit děti před škodlivým a nelegálním obsahem. Aplikace bude podle ní fungovat na jakémkoli zařízení a bude zcela anonymní.

    Ladislav Hagara | Komentářů: 10
    včera 04:33 | Komunita

    V prosinci 2012 byla z linuxového jádra odstraněna podpora procesorů 386. Včera započalo odstraňování podpory procesorů 486.

    Ladislav Hagara | Komentářů: 4
    včera 01:33 | IT novinky

    IuRe (Iuridicum Remedium) vyhlásila Ceny Velkého bratra za rok 2025. Slídily roku jsou automobilka Volkswagen, Meta a česká Ministerstva vnitra a průmyslu a obchodu. Autorem Výroku Velkého bratra je dánský ministr spravedlnosti zpochybňující právo na šifrovanou komunikaci. Naopak Pozitivní cenu získali studenti Masarykovy univerzity za odpor proti nucení do používaní aplikace ISIC.

    |🇵🇸 | Komentářů: 3
    14.4. 21:11 | Nová verze

    Po osmi měsících vývoje byla vydána nová verze 0.16.0 programovacího jazyka Zig (Codeberg, Wikipedie). Přispělo 244 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    14.4. 18:22 | Bezpečnostní upozornění

    Nejnovější X.Org X server 21.1.22 a Xwayland 24.1.10 řeší 5 bezpečnostních chyb: CVE-2026-33999, CVE-2026-34000, CVE-2026-34001, CVE-2026-34002 a CVE-2026-34003.

    Ladislav Hagara | Komentářů: 0
    14.4. 18:00 | Nová verze

    Po roce vývoje od vydání verze 1.28.0 byla vydána nová stabilní verze 1.30.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.30.

    Ladislav Hagara | Komentářů: 0
    14.4. 17:33 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2026-04-13. Přehled novinek poznámkách k vydání. Nově ve výchozím nastavení příkaz sudo vyžaduje heslo.

    Ladislav Hagara | Komentářů: 0
    14.4. 11:22 | Nová verze

    Společnost Blackmagic Design oznámila vydání verze 21 svého proprietárního softwaru pro editování videí a korekci barev DaVinci Resolve běžícího také na Linuxu. Z novinek je nutno vypíchnout možnost editování fotografií. Základní verze DaVinci Resolve je k dispozici zdarma. Plnou verzi DaVinci Resolve Studio lze koupit za 295 dolarů.

    Ladislav Hagara | Komentářů: 30
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1338 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Postgre a mazání duplicit pomocí common table expressions

    2.11.2010 08:06 jeleniste | skóre: 13 | blog: Prokustovo lože
    Postgre a mazání duplicit pomocí common table expressions
    Přečteno: 393×
    Mám následující problém: Na MSSQL s úspěchem používám: ; with cte as ( select *, row_number() over(order by id, partition by id, a, b, c) pid from table )

    delete from cte where pid!=0;

    --finta obslehnuta z netu, zdroj si nepamatuju

    Je to idealni na odstaraneni dupli zaznamu (napriklad opakovane spusteny insert) Na postgre mi to nefunguje, nechce me dovolit mazat z cte

    Pominme, ze mam mit v tabulce Pk, kterej mi nedovoli vlozit 2X tyz zaznam a ze nejdou veci takhle prenaset mezi ruznejma SQL serverama.

    Jde to nejak obejít, dá se v pg nejak mazat z cte??

    Dík Je.
    Nejsem blbý, jen se hloupě ptám

    Řešení dotazu:


    Odpovědi

    2.11.2010 08:20 jos
    Rozbalit Rozbalit vše Re: Postgre a mazání duplicit pomocí common table expressions
    ještě to tam přijoinovat?
    with cte as (
      select id, row_number() over(order by id, partition by id, a, b, c) pid
      from table
    )
    delete t
    from table as t
    inner join cte on cte.id = t.id
    where pid <> 0;
    
    btw to cte je tam zbytečný
    delete t
    from table as t
    inner join (
      select id, row_number() over(order by id, partition by id, a, b, c) pid
      from table
    ) as x on x.id = t.id
    where x.pid <> 1
    
    2.11.2010 09:21 jeleniste | skóre: 13 | blog: Prokustovo lože
    Rozbalit Rozbalit vše Re: Postgre a mazání duplicit pomocí common table expressions
    Bezva, dík za snahu.

    Chm, jestli to chápu, tak si moc nepomůžu, u dupli záznamů je id furt to samý, tj, když to připojim, tak ty záznamy smáznu oba. Tudy cesta nevede.

    Je.
    Nejsem blbý, jen se hloupě ptám
    2.11.2010 09:37 jos
    Rozbalit Rozbalit vše Re: Postgre a mazání duplicit pomocí common table expressions
    jo aha, sorry, to mi nedošlo
    2.11.2010 09:43 jeleniste | skóre: 13 | blog: Prokustovo lože
    Rozbalit Rozbalit vše Re: Postgre a mazání duplicit pomocí common table expressions
    V poho, nepustil sem to do vostrejch dat :)
    Nejsem blbý, jen se hloupě ptám
    2.11.2010 10:30 jos
    Rozbalit Rozbalit vše Re: Postgre a mazání duplicit pomocí common table expressions
    V poho, nepustil sem to do vostrejch dat :)
    bez rollbacku ani ránu )

    druhej pokus:
    delete t
    from table as t
    inner join (
      select id, row_number() over(order by id, partition by id, a, b, c) pid
      from table
    ) as x on x.id = t.id
    inner join (
      select id, row_number() over(order by id, partition by id, a, b, c) pid
      from table
    ) as y on y.id = x.id and y.pid < x.pid
    where y.pid <> 0
    
    za předpokladu, že databáze ví který (fyzický) záznamy to vlastně joinuje (na MSSQL se mi to experimentálně potvrdit nepodařilo, ale asi dělam něco blbě)

    takže řešením (bez OIDů a CTIDů) by bylo přidat soupec, oupdatovat pomocí ROW_NUMBER a pak nemazat nejnižší hodnotu
    2.11.2010 10:49 jeleniste | skóre: 13 | blog: Prokustovo lože
    Rozbalit Rozbalit vše Re: Postgre a mazání duplicit pomocí common table expressions
    takže řešením (bez OIDů a CTIDů) by bylo přidat soupec, oupdatovat pomocí ROW_NUMBER a pak nemazat nejnižší hodnotu

    Mě použití OIDů a CTIDů nevadí. Celej prblm se točí kolem unikátního označení záznamu, který v MSSQL neni. Na tom řešení s cte je elegantní, právě to, že se žádnej sloupec nemusí přidávat, tim, že se maže z CTE. Já bych opustil prblm s duplicitama, způsobů, jak ho pořešit, je evidentně celá přehršel. Spíš mě zajímá rozdíl v možnostech CTE v POSTGRESQL a MSSQL, konkrétně proč to v tom POSTGRE nejde, jde někde povolit v POSTGRE mazání z CTE?? Tenhle konkrétní příklad je v zásadě blbej, protože v podstatě jde o sofistikované řešení prblmu, kterej se na Postgre nevyskytuje, protože má unikátně identifikovatelný řádky sám o sobě.

    Nicméně mazání z CTE mi přijde jako poměrně elegantní fičura, která má i jiný využití, než mazání duplicit.

    Je.
    Nejsem blbý, jen se hloupě ptám
    2.11.2010 09:11 jeleniste | skóre: 13 | blog: Prokustovo lože
    Rozbalit Rozbalit vše Re: Postgre a mazání duplicit pomocí common table expressions
    našel jsem řešení tady http://www.postgres.cz/index.php/PostgreSQL_SQL_Tricks#Removing_of_duplicate_rows

    nicméně by mě stejně zajímalo, jak je to s tim CTE.
    Nejsem blbý, jen se hloupě ptám
    okbob avatar 2.11.2010 21:38 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Postgre a mazání duplicit pomocí common table expressions
    DML operace z CTE budou podporovany v 9.1.

    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.