क्वेरी कई क्लॉज़ से बनी होती है: 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"