मेरे पास एक कॉलम में डेटा है जो इस तरह दिखता है:

  • देहात_वीडियो_-_A18-49_Pub_-Q3-_Flight_7_18_49_BOTH

  • देहात वीडियो - M18-25 मान्य -Q4 - उड़ान 1

  • प्रीमियमब्रांड_2019_अपफ्रंट_वीडियो_-_W18-49_Validated_-_Q4_Flight_1_18_49_FEMALE

  • दुनिया भर की यात्रा - W25-54 मान्य - Q3 25-54_FEMALE

मुझे प्रत्येक स्ट्रिंग से आयु और लिंग मान निकालने की आवश्यकता है:

  • A18-49
  • एम18-25
  • W18-49
  • W25-54

यह मुश्किल है, क्योंकि ए, एम, एफ और एक संख्या सीमा के बीच कई संयोजन हो सकते हैं। अक्षर आयु, पुरुष या महिला को दर्शाते हैं। संख्या सीमा आयु सीमा है।

कुछ गुगलिंग से, ऐसा लगता है कि मैं regexp_extract फ़ंक्शन का उपयोग करने में सक्षम हो सकता हूं, लेकिन मैं हाइव के लिए नौसिखिया हूं। इस पर किसी भी प्रकार की सहायताबहुत प्रशंसनीय होगी!

1
CuriousCat 14 जिंदा 2020, 18:47

1 उत्तर

सबसे बढ़िया उत्तर

मेरे पास परीक्षण करने के लिए हाइव नहीं है, लेकिन यह काम कर सकता है:

select regexp_extract(col, '([AMW][0-9]{2}[-][0-9]{2})', 1)
0
Gordon Linoff 14 जिंदा 2020, 17:17