मुख्य कंटेंट तक स्किप करें

Table.FuzzyNestedJoin

प्रदत्त स्तंभों पर तालिकाओं के बीच एक फ़ज़ी जॉइन निष्पादित करता है और एक नए स्तंभ में जॉइन परिणाम निर्मित करता है.

Syntax

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

Remarks

key1 (table1 के लिए) और key2 (table2 के लिए) द्वारा चुने गए कुंजी स्तंभों के मानों के फ़ज़ी मिलान के आधार पर table1 की पंक्तियों को table2 की पंक्तियों के साथ जोड़ता है. newColumnName नामक एक नए स्तंभ में परिणाम लौट आते हैं.
फ़ज़ी मिलान पाठ की समरूपता के बजाय पाठ की समानता के आधार पर की जाने वाली एक तुलना है.
वैकल्पिक joinKind निर्दिष्ट करता है कि किस प्रकार का जॉइन निष्पादित होना है. यदि joinKind निर्दिष्ट नहीं है, तो डिफ़ॉल्ट रूप से बायाँ आउटर जॉइन निष्पादित किया जाता है. विकल्पों में शामिल हैं:

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

joinOptions का एक वैकल्पिक सेट यह निर्दिष्ट करने के लिए शामिल किया जा सकता है कि कुंजी स्तंभों की तुलना कैसे करें. विकल्पों में शामिल हैं:
  • ConcurrentRequests : 1 और 8 के बीच एक संख्या जो समानांतर थ्रेड्स की संख्या को फ़ज़ी मिलान के लिए उपयोग करने के लिए निर्दिष्ट करती है. डिफ़ॉल्ट मान 1 है.
  • Culture : निर्दिष्ट कल्चर नियमों के आधार पर मिलान वाले रिकॉर्ड्स की अनुमति देता है. यह कोई मान्य कल्चर नाम हो सकता है. उदाहरण के लिए, "ja-JP" का कल्चर विकल्प, जापानी संस्कृति पर आधारित रिकॉर्ड से मेल खाता है. डिफ़ॉल्ट मान "" है, जो अपरिवर्तनीय अंग्रेज़ी कल्चर के आधार पर मेल खाता है.
  • IgnoreCase : एक तार्किक (सही/गलत) मान, जो केस-असंवेदी कुंजी मिलान की अनुमति देता है. उदाहरण के लिए, जब सही होता है, तो "Grapes" का मिलान "grapes" के साथ किया जाता है. डिफ़ॉल्ट मान सही होता है.
  • IgnoreSpace : एक तार्किक (सही/गलत) मान, जो मेल ढूँढने के लिए पाठ भागों के संयोजन की अनुमति देता है. उदाहरण के लिए, जब सही होता है, तो "Gra pes" का मिलान "Grapes" के साथ किया जाता है. डिफ़ॉल्ट मान सही होता है.
  • NumberOfMatches : एक पूर्णांक उस मेल खाने वाली पंक्तियों की अधिकतम संख्या को निर्दिष्ट करती है, जो लौटाई जा सकती हैं. उदाहरण के लिए, 1 का मान प्रत्येक इनपुट पंक्ति के लिए ज़्यादा से ज़्यादा एक मेल खाने वाली पंक्ति लौटाएगा. यदि यह विकल्प प्रदान नहीं किया जाता है, तो सभी मेल खाने वाली पंक्तियाँ लौट आती हैं.
  • SimilarityColumnName : उस स्तंभ का नाम, जो इनपुट मान और उस इनपुट के प्रतिनिधि मान के बीच की समानता को दर्शाता है. डिफ़ॉल्ट मान नल है, इस स्थिति में समानता के लिए एक नया स्तंभ नहीं जोड़ा जाएगा.
  • Threshold : 0.00 और 1.00 के बीच की संख्या जो समान होने के स्कोर को दिखाती है जिस पर दो मानों का मिलान किया जाएगा. उदाहरण के लिए, "Grapes" और "Graes" (अनुपलब्ध "p") केवल तभी मेल खाते हैं जब यह विकल्प 0.90 से कम पर सेट हो. 1.00 का थ्रेशोल्ड केवल सटीक मिलान की अनुमति देता है. (ध्यान दें कि एक फ़ज़ी "सटीक मिलान" आवरण, शब्द क्रम और विराम चिह्न जैसे अंतरों की उपेक्षा कर सकता है.) डिफ़ॉल्ट मान 0.80 है.
  • TransformationTable : एक तालिका जो कस्टम मान मैपिंग के आधार पर रिकॉर्ड्स के मिलान की अनुमति देती है. इसमें "प्रेषक" और "प्रेषित" स्तंभ शामिल होने चाहिए. उदाहरण के लिए, "Grapes" को "Raisins" के साथ समूहीकृत किया गया है, यदि कोई रूपांतरण तालिका "प्रेषक" स्तंभ वाले "Grapes" और "प्रेषित" स्तंभ वाले "Raisins" के साथ प्रदान की गई है. ध्यान दें कि रूपांतरण तालिका में पाठ की सभी पुनरावृत्तियों के लिए रूपांतरण लागू किया जाएगा. ऊपर दिए गए रूपांतरण तालिका के साथ, "Grapes are sweet" के साथ "Raisins are sweet" को भी समूहीकृत किया जाएगा.

Examples

Example #1

[FirstName] पर आधारित दो तालिकाओं का बायां इनर फ़ज़ी जॉइन

Table.FuzzyNestedJoin(
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"},
"NestedTable",
JoinKind.LeftOuter,
[IgnoreCase = true, IgnoreSpace = false]
)

Result:

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

Category

Table.Transformation