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 02:33 | Nová verze

    Editor kódů Zed (Wikipedie) po macOS a Linuxu s verzí 0.208.4běží také ve Windows.

    Ladislav Hagara | Komentářů: 0
    včera 17:44 | IT novinky

    Apple dnes představil 14palcový MacBook Pro, iPad Pro a Apple Vision Pro s novým čipem M5.

    Ladislav Hagara | Komentářů: 9
    včera 13:55 | Nová verze

    Debian pro mobilní zařízení Mobian (Wikipedie) byl vydán ve verzi 13 Trixie. Nová stabilní verze je k dispozici pro PINE64 PinePhone, PinePhone Pro a PineTab, Purism Librem 5, Google Pixel 3a a 3a XL, OnePlus 6 a 6T a Xiaomi Pocophone F1.

    Ladislav Hagara | Komentářů: 1
    včera 13:11 | IT novinky

    Operátor O2 představil tarif Datamanie 1200 GB . Nový tarif přináší 1200 GB dat s neomezenou 5G rychlostí, a také možnost neomezeného volání do všech sítí za 15 Kč na den. Při roční variantě předplatného zákazníci získají po provedení jednorázové platby celou porci dat najednou a mohou je bezstarostně čerpat kdykoli během roku. Do 13. listopadu jej O2 nabízí za zvýhodněných 2 988 Kč. Při průměrné spotřebě tak 100 GB dat vychází na 249 Kč měsíčně.

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

    Byly publikovány informace o útoku na zařízení s Androidem pojmenovaném Pixnapping Attack (CVE-2025-48561). Aplikace může číst citlivá data zobrazovaná jinou aplikací. V demonstračním videu aplikace čte 2FA kódy z Google Authenticatoru.

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

    Free Software Foundation (FSF) spustila projekt Librephone, jehož cílem je vytvoření svobodného operačního systému pro mobilní telefony. Bez binárních blobů.

    Ladislav Hagara | Komentářů: 8
    14.10. 16:44 | Nová verze

    Byla vydána verze 7 s kódovým název Gigi linuxové distribuce LMDE (Linux Mint Debian Edition). Podrobnosti v poznámkách k vydání. Linux Mint vychází z Ubuntu. LMDE je postaveno na Debianu.

    Ladislav Hagara | Komentářů: 0
    14.10. 16:33 | Nová verze

    Byl vydán Mozilla Firefox 144.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze lepší správu profilů. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 144 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    14.10. 14:55 | Bezpečnostní upozornění

    Discord potvrdil únik osobních údajů přibližně 70 000 uživatelů. Incident se týká uživatelů po celém světě, především těch, kteří v rámci ověřování svého věku nahráli do aplikace doklad totožnosti. Únik informací se netýkal systémů samotné platformy, ale došlo k němu přes kompromitovaný účet pracovníka zákaznické podpory u externího poskytovatele služeb.

    Ladislav Hagara | Komentářů: 2
    14.10. 14:44 | IT novinky

    Americká společnost OpenAI, která provozuje chatbota ChatGPT, kvůli výrobě vlastních procesorů pro umělou inteligenci (AI) spojí síly s firmou Broadcom. Firmy o tom informovaly (en) ve svém včerejším sdělení. OpenAI se snaží zajistit si výpočetní výkon potřebný k uspokojení rostoucí poptávky po svých službách. Akcie Broadcomu po zprávě výrazně zpevnily.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (37%)
     (46%)
     (19%)
     (20%)
     (24%)
     (18%)
     (20%)
     (18%)
     (18%)
    Celkem 225 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    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: 348×
    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.