Jaa


Table.FuzzyJoin

Syntaksi

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

Noin

Liittää table1 rivit table2 riveihin perustuen key1 (table1) ja key2 (table2) valitsemien avainsarakkeiden arvojen sumeaan vastaavuuksien perusteella.

Sumea vastaavuus on vertailu, joka perustuu tekstin samankaltaisuuteen tekstin yhtäläisyyden sijaan.

Oletusarvon mukaan tehdään sisäliitos, mutta valinnainen joinKind voidaan sisällyttää määrittämään liitoksen tyyppi. Vaihtoehtoja ovat seuraavat:

Valinnainen joukko joinOptions voidaan sisällyttää määrittämään, miten avainsarakkeita verrataan. Vaihtoehtoja ovat seuraavat:

  • ConcurrentRequests: Luku välillä 1–8, joka määrittää sumean vastaavuuden kanssa käytettävien rinnakkaisten säikeiden määrän. Oletusarvo on 1.
  • Culture: Mahdollistaa tietueiden vastaavuuden maa-asetuskohtaisten sääntöjen perusteella. Se voi olla mikä tahansa kelvollinen maa-asetuksen nimi. Esimerkiksi maa-asetus "ja-JP" vastaa tietueita japanin maa-asetuksen perusteella. Oletusarvo on "", joka muuttumattoman englannin maa-asetuksen perusteella.
  • IgnoreCase: Looginen arvo (tosi/epätosi), joka sallii kirjainkooltaan riippumattoman avainvastaavuuden. Esimerkiksi kun arvo on tosi, Viinirypäleet ja viinirypäleet vastaavat toisiaan. Oletusarvo on true.
  • IgnoreSpace: Looginen arvo (true/false), joka sallii tekstiosien yhdistämisen vastaavuudet etsimistä varten. Esimerkiksi kun arvo on tosi, Viinirypäleet ja viinirypäleet vastaavat toisiaan. Oletusarvo on true.
  • NumberOfMatches: Kokonaisluku, joka määrittää kullekin syöteriville palautettavien vastaavien rivien enimmäismäärän. Esimerkiksi arvo 1 palauttaa enintään yhden vastaavan rivin kullekin syöteriville. Jos tätä asetusta ei anneta, kaikki vastaavat rivit palautetaan.
  • SimilarityColumnName: Sarakkeen nimi, joka näyttää syötteen arvon ja kyseisen syötteen edustavan arvon samankaltaisuuden. Oletusarvo on tyhjäarvo, jolloin uutta saraketta samankaltaisuuksille ei lisätä.
  • Threshold: Luku väliltä 0,00–1,00, joka määrittää samankaltaisuuspistemäärän, jolla kaksi arvoa vastaavat toisiaan. Esimerkiksi Rypäleet ja Ryäleet (p puuttuu) vastaavat vain, jos tämän asetuksen arvo on pienempi kuin 0,90. Raja-arvo 1,00 sallii vain tarkat vastaavuudet. (Huomaa, että sumea "tarkka vastaavuus" saattaa ohittaa erot, kuten johdannaisen, sanajärjestyksen ja välimerkit.) Oletusarvo on 0,80.
  • TransformationTable: Taulukko, joka sallii tietueiden vastaavuuden mukautettujen arvoyhteenmääritysten perusteella. Sen tulee sisältää sarakkeet From ja To. Esimerkiksi Rypäleet on vastaava kuin Rusinat, jos annetaan muunnostaulukko, jossa on From-sarakkeessa Rypäleet ja To-sarakkeessa Rusinat. Ota huomioon, että muunnoksia käytetään tekstin kaikissa esiintymiskertoissa muunnostaulukossa. Yllä olevassa muunnostaulukossa "Rypäleet ovat makeita" ja "Rusinat ovat makeita" ja "Rusinat ovat makeita".

Esimerkki 1

Kahden taulukon vasen sumea sisäliitos perustuen :een [FirstName]

käyttö

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]
)

Output

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
    ]
})