Cross join Power Query-ben

Adott a következő probléma:

Van pl. egy termékeket tartalmazó Power Query táblánk :

Van egy színeket tartalmazó Power Query táblánk:

És ebből kell előállítanunk egy olyan táblát ami a két oszlop szorzatát tartalmazza:

A gyári Power Query-s megoldás rém egyszerű, (itt le is van írva a módszer), csak sajnos szánalmas a teljesítménye. Egy 6000 elemet tartalmazó oszlopot kellett összeszoroznom egy 12 elemet tartalmazó oszloppal és nem futott le a query. Illetve lehet, hogy valamikor lefutott volna, de nem győztem kivárni, és lelőttem.

Cross joint-t ugyanis elő tudunk állítani úgy is, hogy a két táblát egy-egy olyan mesterséges kulcsoszlopon keresztül kötünk össze, ami mondjuk csupa 1-est tartalmaz:

Azaz esetünkben

  1. hozzáadunk a termék táblához egy oszlopot (Custom Column) ami csupa egyest tartalmaz
  2. hozzáadunk a szín táblához is egy oszlopot (Custom Column) ami szintén csupa egyest tartalmaz
  3. És a két táblát inner joinnal összekötjük (Merge Queries/Lekérdezések egyesítése)

Az eredmény ugyanaz, mintha a gyári megoldást használnánk, csak ez a cross join lefut 1 másodperc alatt a gyári meg sose… (Az inspirációt ez a cikk adta)

Kővári Attila - BI projekt

POWER BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jöjjön el a 2023. október 18.-i Power BI workshopra vagy rendeljen kihelyezett képzést! Részletek >>

 

Önkiszolgáló BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jelentkezzen a 2023. október 16-17.-i Excel Power Pivot videókurzusra!  Részletek >>

 

Új hozzászólás