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

क्वेरी कई क्लॉज़ से बनी होती है: 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 के तीन अक्षर वाले मुद्रा कोड का इस्तेमाल करना होगा. उदाहरण के लिए: डॉलर, यूरो.

इस उदाहरण में दी गई क्वेरी, खाते की स्थानीय मुद्रा में cost_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"

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