Пређи на главни садржај

Table.FuzzyJoin

Spaja redove iz dveju tabela koji se približno podudaraju na osnovu datih ključeva.

Syntax

Table.FuzzyJoin(
table1 as table,
key1 as any,
table2 as table,
key2 as any,
optional joinKind as JoinKind.Type,
optional joinOptions as record
) as table

Remarks

Povezuje redove iz table1 sa redovima iz table2 na osnovu približnog podudaranja vrednosti kolona klјuča koje bira key1 (za table1) i key2 (za table2).

Približno podudaranje je poređenje koje se zasniva na sličnosti teksta, a ne istovetnosti teksta.

Podrazumevano se vrši unutrašnje spajanje, ali može se uklјučiti opcionalno joinKind da bi se naveo tip spajanja. Opcije obuhvataju:

  • JoinKind.Inner
  • JoinKind.LeftOuter
  • JoinKind.RightOuter
  • JoinKind.FullOuter
  • JoinKind.LeftAnti
  • JoinKind.RightAnti
  • JoinKind.LeftSemi
  • JoinKind.RightSemi

Može se uklјučiti opcionalni skup joinOptions da bi se navelo kako treba porediti kolone klјuča. Opcije obuhvataju:

  • ConcurrentRequests : Broj između 1 i 8 koji navodi broj paralelnih niti koje se koriste za približno podudaranje. Podrazumevana vrednost je 1.
  • Culture : Omogućava podudaranje zapisa na osnovu pravila specifičnih za kulturu. To može da bude bilo koje važeće ime kulture. Na primer, opcija kulture „ja-JP“ podudara zapise na osnovu japanske kulture. Podrazumevana vrednost je „“, koja podudara na osnovu nepromenlјive engleske kulture.
  • IgnoreCase : Logička (true/false) vrednost koja omogućava podudaranje klјuča koje ne razlikuje mala i velika slova. Na primer, kada se podesi vrednost „true“, „Grožđe“ se podudara sa „grožđe“. Podrazumevana vrednost je „true“.
  • IgnoreSpace : Logička (true/false) vrednost koja omogućava kombinovanje delova teksta kako bi se pronašla podudaranja. Na primer, kada se podesi vrednost „true“, „Gro žđe“ se podudara sa „Grožđe“. Podrazumevana vrednost je „true“.
  • NumberOfMatches : Ceo broj koji navodi maksimalan broj redova koji se podudaraju koji se može vratiti za svaki red ulaza. Na primer, vrednost 1 vraća najviše jedan red koji se podudara za svaki red ulaza. Ako ova opcija nije navedena, vraćaju se svi redovi koji se podudaraju.
  • SimilarityColumnName : Ime za kolonu koja prikazuje sličnost između ulazne vrednosti i reprezentativne vrednosti za taj unos. Podrazumevana opcija je bez vrednosti i u tom slučaju neće biti dodata nova kolona za sličnosti.
  • Threshold : Broj između 0,00 i 1,00 koji navodi ocenu sličnosti po kojoj će se dve vrednosti podudarati. Na primer, „Grožđe“ i „Grože“ (nedostaje slovo „đ“) podudaraju se samo ako je ova opcija podešena na manje od 0,90. Granična vrednost od 1,00 dozvoljava samo potpuna podudaranja. (Imajte u vidu da približno „Potpuno podudaranje“ može da zanemaruje razlike kao što su veličina slova, redosled reči i interpunkcije.) Podrazumevana vrednost je 0,80.
  • TransformationTable : Tabela koja omogućava podudaranje zapisa na osnovu mapiranja prilagođene vrednosti. Trebalo bi da sadrži kolone „Iz“ i „U“. Na primer, „Grožđe se podudara sa „Suvo grožđe“ ako je data tabela transformacije sa kolonom „Iz“ koja sadrži „Grožđe“ i kolonom „U“ koja sadrži „Suvo grožđe“. Imajte na umu da se transformacija primenjuje na sva pojavlјivanja teksta u tabeli transformacije. Na osnovu gorenavedene tabele transformacije i „Grožđe je slatko“ podudariće se sa „Suvo grožđe je slatko“.

Examples

Example #1

Levo unutrašnje spajanje približnih za dve tabele zasnovane na [FirstName]

Table.FuzzyJoin(
Table.FromRecords(
{
[CustomerID = 1, FirstName1 = "Bob", Phone = "555-1234"],
[CustomerID = 2, FirstName1 = "Robert", Phone = "555-4567"]
},
type table [CustomerID = nullable number, FirstName1 = nullable text, Phone = nullable text]
),
{"FirstName1"},
Table.FromRecords(
{
[CustomerStateID = 1, FirstName2 = "Bob", State = "TX"],
[CustomerStateID = 2, FirstName2 = "bOB", State = "CA"]
},
type table [CustomerStateID = nullable number, FirstName2 = nullable text, State = nullable text]
),
{"FirstName2"},
JoinKind.LeftOuter,
[IgnoreCase = true, IgnoreSpace = false]
)

Result:

Table.FromRecords({
[
CustomerID = 1,
FirstName1 = "Bob",
Phone = "555-1234",
CustomerStateID = 1,
FirstName2 = "Bob",
State = "TX"
],
[
CustomerID = 1,
FirstName1 = "Bob",
Phone = "555-1234",
CustomerStateID = 2,
FirstName2 = "bOB",
State = "CA"
],
[
CustomerID = 2,
FirstName1 = "Robert",
Phone = "555-4567",
CustomerStateID = null,
FirstName2 = null,
State = null
]
})

Category

Table.Transformation