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

क्वेरी में कई क्लॉज़ मौजूद होते हैं: 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 वैरिएबल

कस्टम 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

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

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 क्लॉज़:

  • किसी क्वेरी में ज़रूरी नहीं क्लॉज़ है.
  • उस क्रम को तय करता है जिसमें नतीजे दिखाए जाते हैं. इस तरीके के मुताबिक क्रम तय किया जाता है: 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

ऑर्डर को मिलाएं और सीमा तय करें

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

इस उदाहरण में दी गई क्वेरी में ऐसे पांच कैंपेन दिखाए गए हैं जिन्हें पिछले 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

param का क्लॉज़

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 तीन वर्णों वाले मुद्रा कोड का इस्तेमाल करना होगा. उदाहरण के लिए: USD, EUR.

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

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

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

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

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