क्वेरी का स्ट्रक्चर और क्लॉज़

क्वेरी कई क्लॉज़ से बनी होती है: SELECT, FROM, WHERE, ORDER BY, LIMIT, और PARAMETERS.

क्लॉज़ में फ़ील्ड के नाम, संसाधन के नाम, ऑपरेटर, शर्तें, और क्रम का इस्तेमाल किया जाता है. ये सभी एक क्वेरी अनुरोध में शामिल होते हैं.

आसान शब्दों में कहें, तो क्वेरी बनाने के लिए:

  • वह संसाधन चुनें जिससे डेटा वापस पाना है.
  • आपको जो डेटा दिखाना है उसे तय करने के लिए, फ़ील्ड और मेट्रिक जोड़ें.
  • अपने नतीजों को ग्रुप करने के लिए सेगमेंट जोड़ें.
  • मिलते-जुलते संसाधन के डेटा को शामिल करने के लिए, एट्रिब्यूट किए गए संसाधन जोड़ें.
  • अपने नतीजों को फ़िल्टर करें, क्रम से लगाएं, और सीमित करें.

SELECT क्लॉज़

SELECT क्लॉज़:

  • यह किसी क्वेरी में ज़रूरी क्लॉज़ है.
  • अनुरोध में फ़ेच किए जाने वाले फ़ील्ड के सेट के बारे में बताता है.
  • यह फ़ंक्शन, कॉमा से अलग की गई संसाधन फ़ील्ड, कस्टम कॉलम, कस्टम Floodlight वैरिएबल, सेगमेंट फ़ील्ड, और मेट्रिक की सूची लेता है और रिस्पॉन्स में वैल्यू दिखाता है.

इस उदाहरण वाली क्वेरी में, campaign संसाधन के एट्रिब्यूट चुनने का तरीका बताया गया है:

SELECT
  campaign.id,
  campaign.name
FROM campaign

एक से ज़्यादा फ़ील्ड टाइप

एक ही अनुरोध में, अलग-अलग तरह के फ़ील्ड के लिए अनुरोध किया जा सकता है.

यहां दी गई उदाहरण क्वेरी में, एक क्वेरी के साथ ये एलिमेंट शामिल हैं:

  • रिसॉर्स फ़ील्ड: campaign.id, campaign.name, bidding_strategy.id, और bidding_strategy.name.
  • सेगमेंट फ़ील्ड: segments.device और segments.date.
  • मेट्रिक फ़ील्ड: metrics.impressions और metrics.clicks.
SELECT
  campaign.id,
  campaign.name,
  bidding_strategy.id,
  bidding_strategy.name,
  segments.device,
  segments.date,
  metrics.impressions,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

अपनी सर्च रिपोर्ट को सेगमेंट करने के बारे में ज़्यादा जानने के लिए, सेगमेंटेशन देखें.

मुख्य संसाधन फ़ील्ड

आम तौर पर, आपको SELECT क्लॉज़ में अपना मुख्य संसाधन फ़ील्ड शामिल करना होगा. हालांकि, यह ज़रूरी नहीं है (यह ज़रूरी नहीं है).

उदाहरण के तौर पर, यह क्वेरी सिर्फ़ नतीजों को फ़िल्टर करने के लिए, मुख्य रिसॉर्स फ़ील्ड (ad_group.status) का इस्तेमाल करती है.

SELECT campaign.id
FROM ad_group
WHERE ad_group.status = PAUSED

कस्टम Floodlight वैरिएबल

SELECT क्लॉज़ में कस्टम Floodlight वैरिएबल शामिल करने के लिए, उनके आईडी का इस्तेमाल करें.

इस उदाहरण में, क्वेरी में कैंपेन रिसॉर्स के लिए आईडी 123454321 वाला कस्टम वैरिएबल शामिल है.

SELECT
  conversion_custom_metrics.id[123454321]
FROM campaign
SELECT
  conversion_custom_dimensions.id[123454321]
FROM campaign

कस्टम कॉलम

SELECT क्लॉज़ में कस्टम कॉलम शामिल करने के लिए, उनके आईडी का इस्तेमाल किया जा सकता है.

इस उदाहरण में, क्वेरी में कैंपेन संसाधन के लिए आईडी 12345678 वाला कस्टम कॉलम शामिल है.

SELECT
  custom_columns.id[12345678]
FROM campaign

कस्टम कॉलम आईडी पाने का तरीका देखें.

मेट्रिक फ़ील्ड

किसी दिए गए रिसॉर्स के लिए मेट्रिक फ़ील्ड चुने जा सकते हैं. इसके लिए, SELECTक्लॉज़ में रिसॉर्स के किसी भी दूसरे फ़ील्ड को शामिल करने की ज़रूरत नहीं है.

इस उदाहरण में दी गई क्वेरी, campaign रिसॉर्स के लिए impressions और clicks मेट्रिक चुनती है.

SELECT
  metrics.impressions,
  metrics.clicks
FROM campaign

metrics पर जाएं और उन मेट्रिक फ़ील्ड की सूची देखें जिनका इस्तेमाल क्वेरी में किया जा सकता है.

सेगमेंट फ़ील्ड

SELECT क्लॉज़ में, साथ में मौजूद रिसॉर्स फ़ील्ड या मेट्रिक के बारे में बताए बिना, सेगमेंट फ़ील्ड चुने जा सकते हैं.

यह उदाहरण क्वेरी के नतीजों को डिवाइस के हिसाब से बांटता है.

SELECT segments.device
FROM campaign

क्वेरी में इस्तेमाल किए जा सकने वाले सेगमेंट फ़ील्ड की सूची के लिए, segments देखें.

इस्तेमाल न किए जा सकने वाले फ़ील्ड

SELECT क्लॉज़ में इन फ़ील्ड का इस्तेमाल नहीं किया जा सकता:

  • चुने नहीं जा सकने वाले फ़ील्ड यानी ऐसे फ़ील्ड जिनमें Selectable मेटाडेटा एट्रिब्यूट की वैल्यू false के तौर पर मार्क की गई है.
  • दोहराए गए फ़ील्ड, यानी Repeated मेटाडेटा एट्रिब्यूट वाले फ़ील्ड, जिन्हें true के तौर पर मार्क किया गया है.
  • ऐसे फ़ील्ड जो FROM क्लॉज़ में दिए गए संसाधन के लिए उपलब्ध नहीं हैं. कुछ संसाधनों के एट्रिब्यूट एक साथ नहीं चुने जा सकते. कुछ संसाधनों में, सिर्फ़ सभी मीट्रिक और सेगमेंट का सबसेट उपलब्ध होता है.
  • काम न करने वाले सेगमेंट या मेट्रिक. ज़्यादा जानकारी के लिए, सेगमेंटेशन देखें.

हर संसाधन के लिए यह जानकारी कहां मिलेगी, इस बारे में जानने के लिए रेफ़रंस के लिए दस्तावेज़ देखें.

FROM क्लॉज़

FROM क्लॉज़:

  • SearchAds360Service के लिए क्वेरी के लिए ज़रूरी क्लॉज़ है (Search और SearchStream, दोनों तरीके).
  • SearchAds360FieldService की क्वेरी के लिए शामिल नहीं किया जाना चाहिए.
  • इससे उस मुख्य संसाधन के बारे में पता चलता है जो क्वेरी से मिलता है.
  • सिर्फ़ एक संसाधन तय किया जा सकता है.
  • उन फ़ील्ड के बारे में बताता है जिनका इस्तेमाल क्वेरी के अन्य सभी क्लॉज़ में किया जा सकता है.

एट्रिब्यूट किए गए संसाधन

अगर एट्रिब्यूट किए गए संसाधन उपलब्ध हैं, तो वे FROM क्लॉज़ में बताए गए संसाधनों के साथ सीधे तौर पर जोड़े जाते हैं. उनकी वैल्यू दिखाने के लिए, आपको सिर्फ़ उनके एट्रिब्यूट को SELECT क्लॉज़ में जोड़ना होगा.

इस उदाहरण की क्वेरी, विज्ञापन ग्रुप आईडी और कैंपेन आईडी, दोनों दिखाती है. ऐसा इसलिए होता है, क्योंकि campaign, ad_group रिसॉर्स का एट्रिब्यूट किया गया रिसॉर्स है.

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

resource_name फ़ील्ड

FROM क्लॉज़ में मुख्य रिसॉर्स का resource_name फ़ील्ड हमेशा दिखाया जाता है.

इस उदाहरण में दी गई क्वेरी में, ad_group.resource_name को जवाब में शामिल किया जाएगा, भले ही इसे क्वेरी में साफ़ तौर पर चुना न गया हो:

SELECT ad_group.id
FROM ad_group

कम से कम एक फ़ील्ड चुनने पर, एट्रिब्यूट किए गए रिसॉर्स का resource_name फ़ील्ड दिखाया जाता है.

उदाहरण के तौर पर दी गई इस क्वेरी में, campaign.resource_name को रिस्पॉन्स में शामिल किया जाएगा, क्योंकि campaign.id को चुना गया है:

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

WHERE क्लॉज़

WHERE क्लॉज़:

  • यह क्वेरी में मौजूद एक वैकल्पिक क्लॉज़ है.
  • अनुरोध के लिए डेटा को फ़िल्टर करने और सेगमेंट में बांटने की शर्तें तय करता है. शर्तें इस पैटर्न के हिसाब से होती हैं: FIELD_NAME OPERATOR VALUE (खाली जगहों से अलग किए गए).
  • इसमें एक से ज़्यादा शर्तें शामिल की जा सकती हैं. इन्हें AND सेपरेटर से अलग किया जा सकता है.

इस उदाहरण में दी गई क्वेरी से पता चलता है कि किसी तय समयावधि के लिए impressions मेट्रिक दिखाने के लिए, WHERE क्लॉज़ का इस्तेमाल कैसे किया जाता है:

SELECT
  campaign.id,
  campaign.name,
  metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

अपनी सर्च रिपोर्ट को सेगमेंट करने के बारे में ज़्यादा जानने के लिए, सेगमेंटेशन देखें.

अपनी क्वेरी में तारीख की सीमाएं तय करने के बारे में ज़्यादा जानने के लिए, तारीख की सीमाएं देखें.

resource_name फ़ील्ड के हिसाब से फ़िल्टर करना

डेटा को फ़िल्टर करने या क्रम से लगाने के लिए, resource_name फ़ील्ड का इस्तेमाल किया जा सकता है.

इस उदाहरण में दी गई क्वेरी, किसी कैंपेन के हिसाब से नतीजों को फ़िल्टर करने के लिए campaign.resource_name फ़ील्ड का इस्तेमाल करती है:

SELECT
  campaign.id,
  campaign.name
FROM campaign
WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'

एक से ज़्यादा कंडिशन

डेटा को फ़िल्टर करने के लिए, कई शर्तों को जोड़ा जा सकता है.

इस उदाहरण में दी गई क्वेरी, पिछले 30 दिनों के दौरान मोबाइल पर impressions मेट्रिक वाले सभी कैंपेन के लिए clicks मेट्रिक की संख्या का अनुरोध करती है.

SELECT
  campaign.id,
  campaign.name,
  segments.device,
  metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
  AND segments.device = MOBILE
  AND segments.date DURING LAST_30_DAYS

अपनी रिपोर्ट को सेगमेंट करने के बारे में ज़्यादा जानने के लिए, सेगमेंटेशन देखें.

केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर)

स्ट्रिंग वैल्यू के हिसाब से फ़िल्टर करते समय, हर ऑपरेटर के लिए केस सेंसिटिविटी की डिफ़ॉल्ट सेटिंग, नतीजों को सही तरीके से फ़िल्टर करने में अहम भूमिका निभाती है.

नीचे दी गई टेबल में, हर ऑपरेटर के लिए केस सेंसिटिविटी की डिफ़ॉल्ट सेटिंग के बारे में बताया गया है.

केस-सेंसिटिविटी (बड़े और छोटे अक्षरों में अंतर) की डिफ़ॉल्ट सेटिंग
=/!= Case sensitive
IN/NOT IN Case sensitive
LIKE/NOT LIKE Case insensitive
CONTAINS (...) Case sensitive
REGEXP_MATCH/NOT REGEXP_MATCH Case sensitive

(?i) मॉडिफ़ायर का इस्तेमाल करके, REGEXP_MATCH और NOT REGEXP_MATCH के लिए डिफ़ॉल्ट संवेदनशीलता को केस-इनसेंसिटिव में बदला जा सकता है. उदाहरण के लिए:

SELECT campaign.id
FROM campaign
WHERE campaign.name REGEXP_MATCH "(?i).*test.*"

डेटा को फ़िल्टर करने के लिए इस्तेमाल किए जा सकने वाले ऑपरेटर की पूरी सूची देखने के लिए, क्वेरी के व्याकरण का रेफ़रंस देखें.

तारीख के मुख्य सेगमेंट

इन सेगमेंट फ़ील्ड को तारीख के मुख्य सेगमेंट के नाम से जाना जाता है: segments.date, segments.week, segments.month, segments.quarter, और segments.year.

तारीख या समय की अवधि तय करने के लिए, अपने WHERE क्लॉज़ में तारीख के मुख्य सेगमेंट का इस्तेमाल किया जा सकता है.

इस उदाहरण में दी गई क्वेरी, WHERE क्लॉज़ में segments.date फ़ील्ड के लिए DURING LAST_30_DAYS तय करती है:

SELECT
  campaign.id,
  campaign.name,
  segments.date,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

मुख्य तारीख के सेगमेंट इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, सेगमेंटेशन > मुख्य तारीख के सेगमेंट देखें.

पाबंदी वाला फ़िल्टर

इनके लिए फ़िल्टर करने की अनुमति नहीं है:

  • कोर तारीख सेगमेंट को छोड़कर, चुने गए सेगमेंट फ़ील्ड पर.
  • प्राइमिटिव (उदाहरण के लिए, Int64Value, StringValue वगैरह) को छोड़कर, किसी भी तरह के मैसेज के फ़ील्ड पर.
  • प्रिमिटिव (उदाहरण के लिए, Int64Value, StringValue वगैरह) को छोड़कर, किसी भी तरह के मैसेज के दोहराए गए फ़ील्ड के एट्रिब्यूट के लिए.

ORDER BY क्लॉज़

ORDER BY क्लॉज़:

  • यह क्वेरी में मौजूद एक वैकल्पिक क्लॉज़ है.
  • यह तय करता है कि नतीजे किस क्रम में दिखाए जाएं. ऑर्डर करने का पैटर्न यह है: FIELD_NAME ORDERING_OPTION (बिना स्पेस के).
  • दो विकल्पों की अनुमति देता है: ASC (बढ़ते क्रम में) या DESC (घटते क्रम में). डिफ़ॉल्ट रूप से, यह बढ़ते क्रम में होता है.

इस उदाहरण में, क्लिक की संख्या के हिसाब से कैंपेन को घटते क्रम में (ज़्यादा से कम) लगाया गया है:

SELECT
  campaign.name,
  metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC

एक से ज़्यादा क्रम

कॉमा लगाकर अलग की गई सूची का इस्तेमाल करके, ORDER BY क्लॉज़ में एक से ज़्यादा फ़ील्ड तय किए जा सकते हैं. नतीजों को उसी क्रम में दिखाया जाएगा जिस क्रम में आपने क्वेरी में बताया है.

इस उदाहरण क्वेरी में विज्ञापन ग्रुप का डेटा चुना जाता है और नतीजों को कैंपेन के नाम के अनुसार बढ़ते क्रम में, फिर इंप्रेशन की संख्या के अनुसार घटते क्रम में और फिर क्लिक की संख्या के अनुसार घटते क्रम में रखा जाता है:

SELECT
  campaign.name,
  ad_group.name,
  metrics.impressions,
  metrics.clicks
FROM ad_group
ORDER BY
  campaign.name,
  metrics.impressions DESC,
  metrics.clicks DESC

क्रम और सीमा को जोड़ना

अपने नतीजों को बेहतर बनाने के लिए, ORDER BY क्लॉज़ के साथ LIMIT क्लॉज़ का इस्तेमाल किया जा सकता है.

इस उदाहरण की क्वेरी से, पिछले 30 दिनों में सबसे ज़्यादा इंप्रेशन वाले पांच कैंपेन दिखते हैं:

SELECT
  campaign.id,
  campaign.name,
  metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.impressions DESC
LIMIT 5

ऑर्डर करने पर पाबंदी

इनके लिए ऑर्डर करने की अनुमति नहीं है:

  • चुने गए संसाधनों के एट्रिब्यूट के हिसाब से.
  • चुनी गई मेट्रिक के हिसाब से.
  • नहीं चुने गए सेगमेंट के हिसाब से.
  • इन फ़ील्ड टाइप के लिए:
    • MESSAGE
    • दोहराए गए फ़ील्ड
    • दोहराए गए फ़ील्ड के एट्रिब्यूट.

LIMIT क्लॉज़

LIMIT क्लॉज़:

  • यह क्वेरी में मौजूद एक वैकल्पिक क्लॉज़ है.
  • इससे, क्वेरी के नतीजों की संख्या को सीमित किया जा सकता है.

यह क्लॉज़ तब फ़ायदेमंद होता है, जब आपकी दिलचस्पी सिर्फ़ नतीजों के सैंपल या फिर उनका खास ब्यौरा पाने में हो.

यह उदाहरण क्वेरी परिणामों की कुल संख्या को 50 तक सीमित करती है:

SELECT
  campaign.name,
  ad_group.name,
  segments.device,
  metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50

PARAMETERS क्लॉज़

PARAMETERS क्लॉज़ की मदद से, अनुरोध के लिए मेटा पैरामीटर तय किए जा सकते हैं.

ड्राफ़्ट शामिल करना

include_drafts पैरामीटर से यह कंट्रोल किया जाता है कि नतीजों में ड्राफ़्ट इकाइयां शामिल की जाएंगी या नहीं. डिफ़ॉल्ट रूप से, यह false पर सेट होता है. ड्राफ़्ट इकाइयों को शामिल करने के लिए, इसे true पर सेट करें.

उदाहरण के तौर पर दी गई क्वेरी से, ड्राफ़्ट कैंपेन और सामान्य कैंपेन, दोनों के बारे में जानकारी मिलती है:

SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true

चुने हुए का निशान हटाए गए resource_name को शामिल न करें

omit_unselected_resource_names पैरामीटर की मदद से, उन सभी संसाधनों के resource_name फ़ील्ड को बाहर रखा जा सकता है जिनके लिए आपके SELECT क्लॉज़ में साफ़ तौर पर अनुरोध नहीं किया गया है. डिफ़ॉल्ट रूप से, यह false पर सेट होता है. अगर इस पैरामीटर को true पर सेट किया जाता है, तो हमारा सुझाव है कि आप अपने SELECT क्लॉज़ में, मुख्य रिसॉर्स के नाम और एट्रिब्यूट किए गए रिसॉर्स के लिए साफ़ तौर पर अनुरोध करें.

इस उदाहरण में दी गई क्वेरी, न तो campaign.resource_name और न ही customer.resource_name फ़ील्ड दिखाती है, क्योंकि ये SELECT क्लॉज़ में शामिल नहीं हैं:

SELECT
  campaign.name,
  customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true

इस उदाहरण में दी गई क्वेरी, campaign.resource_name फ़ील्ड दिखाती है, क्योंकि SELECT क्लॉज़ में इसका साफ़ तौर पर अनुरोध किया गया है:

SELECT
  campaign.name,
  campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true

मेट्रिक में इस्तेमाल की जाने वाली मुद्रा बदलना

metrics_currency पैरामीटर की मदद से, अपने SELECT क्लॉज़ में शामिल मेट्रिक को कैलकुलेट करते समय, इस्तेमाल की जाने वाली मुद्रा तय की जा सकती है. डिफ़ॉल्ट रूप से, खाते के लिए स्थानीय मुद्रा का इस्तेमाल किया जाता है. इस पैरामीटर को सेट करने पर, आपको ISO 4217 तीन वर्णों वाला मुद्रा कोड इस्तेमाल करना होगा. उदाहरण के लिए: डॉलर, यूरो.

उदाहरण के तौर पर दी गई यह क्वेरी, खाते की स्थानीय मुद्रा में price_micros मेट्रिक दिखाती है.

SELECT
  campaign.name,
  metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"

इस उदाहरण में दी गई क्वेरी, cost_micros मेट्रिक को चिलियन पेसो (CLP) में दिखाती है.

SELECT
  campaign.name,
  metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
PARAMETERS metrics_currency = "CLP"

ज़्यादा जानें