BigQuery कुकबुक

यह सुविधा सिर्फ़ Analytics 360 में उपलब्ध है जो Google Marketing Platform का हिस्सा है.
Google Marketing Platform के बारे में ज़्यादा जानें.

इस लेख में, BigQuery में एक्सपोर्ट किए जाने वाले Analytics डेटा की क्वेरी बनाने के तरीके से जुड़े उदाहरण दिए गए हैं. हमने एक सैंपल डेटासेट उपलब्ध कराया है, ताकि आप इस लेख में दी गई क्वेरी के साथ अभ्यास कर सकें.

इस लेख में इन विषयों के बारे में बताया गया है:

क्वेरी ऑप्टिमाइज़ेशन

आपकी चलाई गई हर क्वेरी, आपके मासिक डेटा-प्रोसेसिंग भत्ते में योगदान देती है. बाहरी फ़ील्ड चुनने पर, प्रोसेस किए जाने वाले आपके डेटा की मात्रा बढ़ जाती है और इसकी वजह से आपका मासिक भत्ता आवश्यकता से ज़्यादा खर्च होता है. ऑप्टिमाइज़ की गई क्वेरी, डेटा-प्रोसेसिंग के लिए हर महीने की तय सीमा का बेहतर इस्तेमाल करती है.

कीमत तय करने के बारे में ज़्यादा जानें.

सिर्फ़ अपनी ज़रूरत की चीज़ें चुनें

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

उदाहरण: वाइल्डकार्ड ऑपरेटर का इस्तेमाल करने से बचें

खराब फ़ॉर्म: वाइल्डकार्ड ऑपरेटर का इस्तेमाल करना
SELECT *
FROM [table name];

 

बेहतर फ़ॉर्म: बेवजह प्रोसेसिंग से बचने के लिए, फ़ील्ड के नाम का इस्तेमाल करना
SELECT field1, field2
FROM [table name];

कैशिंग की अनुमति देना

जहां संभव हो, फ़ंक्शन का फ़ील्ड के रूप में इस्तेमाल करने से बचें. फ़ंक्शन (जैसे NOW() या TODAY()) अलग-अलग नतीजे देते हैं, जिसके कारण क्वेरी कैश मेमोरी में सेव नहीं होती हैं और इसलिए वे ज़्यादा जल्दी से मिलती हैं. इसके बजाय, खास समय और तारीखों का इस्तेमाल करें.

फ़िलहाल, वाइल्डकार्ड का इस्तेमाल करके कई टेबल की क्वेरी करने के लिए, कैश किए गए नतीजों का इस्तेमाल नहीं किया जाता. भले ही, आपने 'कैश मेमोरी में सेव किए गए नतीजों का इस्तेमाल करें' विकल्प चुना हो. एक ही वाइल्डकार्ड क्वेरी को कई बार चलाने पर आपको हर क्वेरी के लिए बिल दिया जाता है. ज़्यादा जानें

आम तौर पर इस्तेमाल की जाने वाली सबक्वेरी के लिए इंटरमीडिएट टेबल का इस्तेमाल करना

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

इंटरमीडिएट टेबल का इस्तेमाल करना
SELECT field1, field2
FROM [Dataset name.table name];

क्वेरी डीबग करना

आपके कोड बनाते ही BigQuery उसे डीबग कर देता है. कंपोज़िशन विंडो में, डीबगिंग बिलकुल क्वेरी के नीचे दिखाई देती है. डीबगिंग, dryRun फ़्लैग वाले एपीआई के ज़रिए भी उपलब्ध है.

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

Query Debugging - Success

 

अमान्य क्वेरी में लाल रंग का इंंडिकेटर होता है. इस पर क्लिक करके, गड़बड़ी से जुड़ी जानकारी देखी जा सकती है. साथ ही, गड़बड़ी वाली लाइन और कॉलम को खोजा भी जा सकता है. नीचे दिए गए उदाहरण में, GROUP BY स्टेटमेंट खाली है और गड़बड़ी को सटीक रूप से दिखाया गया है.

Query Debugging - Error

 

सलाह और सबसे सही तरीके

सैंपल डेटासेट का इस्तेमाल करना

नीचे दिए गए उदाहरण, Google Analytics सैंपल डेटासेट का इस्तेमाल करते हैं.

अपने डेटा पर क्‍वेरी का इस्तेमाल करने के लिए, बस अपने प्रोजेक्ट और डेटासेट नामों के उदाहरणों में प्रोजेक्ट और डेटासेट नामों को बदलें.

मानक एसक्यूएल बनाम लेगसी एसक्यूएल का इस्तेमाल करना

BigQuery, दो एसक्यूएल डायलेक्ट के साथ काम करता है:

मानक एसक्यूएल पर माइग्रेट करना. यह दो डायलेक्ट के बीच अंतर बताता है.

BigQuery में स्टोर किए गए डेटा की क्वेरी करने के लिए, मानक एसक्यूएल अब मुख्य एसक्यूएल भाषा है.

BigQuery यूज़र इंटरफ़ेस (यूआई), सीएलआई, एपीआई में या किसी और इंटरफ़ेस का इस्तेमाल करने पर, मानक एसक्यूएल चालू करने के बारे में जानकारी के लिए मानक एसक्यूएल चालू करना देखें.

नीचे दिए गए उदाहरणों के मुताबिक, मानक एसक्यूएल क्वेरी के ऊपर "standardSQL" टिप्पणी शामिल करना, शुरू करने का सबसे आसान तरीका है.

लेगसी एसक्यूएल की मदद से Google Analytics 360 का डेटा, रोज़ एक नई टेबल में भेजा जाता है. एक साथ कई टेबल के लिए क्वेरी करने पर, टेबल के नामों को कॉमा लगाकर अलग किया जा सकता है. इसके लिए, TABLE_DATE_RANGE टेबल वाइल्डकार्ड फ़ंक्शन का इस्तेमाल करें या कॉमा लगाकर अलग किए गए TABLE_DATE_RANGE के कई फ़ंक्शन का इस्तेमाल करें. इन फ़ंक्शन के बारे में नीचे दिए गए उदाहरणों में बताया गया है.

एक से ज़्यादा टेबल पर क्वेरी करें

नीचे दिए गए उदाहरण आपको एक ही डेटा के लिए मानक एसक्यूएल और लेगसी एसक्यूएल क्‍वेरी दिखाते हैं.

3 दिन

मानक एसक्यूएल
UNION ALL का इस्तेमाल करने वाले तीन दिन
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC
लेगसी एसक्यूएल
कॉमा लगाकर अलग किए गए टेबल नामों का इस्तेमाल करने वाले तीन दिन
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
[bigquery-public-data.google_analytics_sample.ga_sessions_20160801],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160802],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160803]
GROUP BY
date
ORDER BY
date ASC

 

पिछले 1,095 दिन

मानक एसक्यूएल
_TABLE_SUFFIX का इस्तेमाल करने वाले पिछले 1,095 दिन
#standardSQL
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1095 DAY))
AND
FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
GROUP BY date
ORDER BY date ASC
लेगसी एसक्यूएल
TABLE_DATE_RANGE का इस्तेमाल करने वाले पिछले 1,095 दिन
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
(TABLE_DATE_RANGE([bigquery-public-data.google_analytics_sample.ga_sessions_],
DATE_ADD(CURRENT_TIMESTAMP(), -1095, 'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), -1, 'DAY')))
GROUP BY
date
ORDER BY
date ASC

 

पिछले 36 महीने

मानक एसक्यूएल
_TABLE_SUFFIX का इस्तेमाल करने वाले पिछले 36 महीने
#standardSQL
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 36 MONTH))
AND
FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
GROUP BY date
ORDER BY date ASC
लेगसी एसक्यूएल
TABLE_DATE_RANGE का इस्तेमाल करने वाले पिछले 36 महीने
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
(TABLE_DATE_RANGE([bigquery-public-data.google_analytics_sample.ga_sessions_],
DATE_ADD(CURRENT_TIMESTAMP(), -36, 'MONTH'), DATE_ADD(CURRENT_TIMESTAMP(), -1, 'DAY')))
GROUP BY
date
ORDER BY
date ASC

 

पिछले तीन साल

मानक एसक्यूएल
_TABLE_SUFFIX इस्तेमाल करने वाले पिछले तीन साल
#standardSQL
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 3 YEAR))
AND
FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
GROUP BY date
ORDER BY date ASC
लेगसी एसक्यूएल
TABLE_DATE_RANGE का इस्तेमाल करने वाले पिछले तीन साल
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
(TABLE_DATE_RANGE([bigquery-public-data.google_analytics_sample.ga_sessions_],
DATE_ADD(CURRENT_TIMESTAMP(), -3, 'YEAR'), DATE_ADD(CURRENT_TIMESTAMP(), -1, 'DAY')))
GROUP BY
date
ORDER BY
date ASC

 

तारीख की खास सीमा

मानक SQL
_TABLE_SUFFIX का इस्तेमाल करने वाली तारीख की खास सीमा
#standardSQL
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20160801' AND '20170731'
GROUP BY date
ORDER BY date ASC
लेगसी एसक्यूएल
TABLE_DATE_RANGE का इस्तेमाल करने वाली तारीख की खास सीमा
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
(TABLE_DATE_RANGE([bigquery-public-data.google_analytics_sample.ga_sessions_],
TIMESTAMP('2016-08-01'), TIMESTAMP('2017-07-31')))
GROUP BY
date
ORDER BY
date ASC

पिछले तीन साल के डेटा के साथ आज का डेटा (इंट्रा-डे)

मानक SQL
यूनियन ऑल और _TABLE_SUFFIX का इस्तेमाल करने वाले पिछले 3 वर्षों के साथ आज का डेटा (अंतःदिवसीय)
नोट: यह उदाहरण क्वेरी, Google Analytics सार्वजनिक डेटासेट के साथ काम नहीं करेगी, क्योंकि फ़िलहाल कोई इंट्रा-डे टेबल नहीं है.
#standardSQL
WITH ga_tables AS ( SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 3 YEAR))
AND
FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
GROUP BY date
UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
AND
FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY))
GROUP BY date
)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

लेगसी एसक्यूएल

कई TABLE_DATE_RANGE का इस्तेमाल करने वाले पिछले 3 वर्षों के साथ आज का डेटा (अंतःदिवसीय)
नोट: यह उदाहरण क्वेरी, Google Analytics सार्वजनिक डेटासेट के साथ काम नहीं करेगी, क्योंकि फ़िलहाल कोई इंट्रा-डे टेबल नहीं है.
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
(TABLE_DATE_RANGE([bigquery-public-data.google_analytics_sample.ga_sessions_],
DATE_ADD(CURRENT_TIMESTAMP(), -3, 'YEAR'), DATE_ADD(CURRENT_TIMESTAMP(), -1, 'DAY'))),
(TABLE_DATE_RANGE([bigquery-public-data.google_analytics_sample.ga_sessions_intraday_],
DATE_ADD(CURRENT_TIMESTAMP(), -1, 'DAY'), CURRENT_TIMESTAMP()))
GROUP BY
date
ORDER BY
date ASC

 

 

बुनियादी क्वेरी के उदाहरण

यह अनुभाग उदाहरणस्वरूप दिए गए Analytics डेटा के मीट्रिक और आयामों का उपयोग करके बुनियादी क्वेरी तैयार करने के तरीके का वर्णन करता है.

हर [डाइमेंशन] के लिए कुल [मेट्रिक]?

नीचे प्रश्न के लिए उदाहरण स्क्रिप्ट दिए गए हैं: जुलाई 2017 में प्रति डिवाइस ब्राउज़र द्वारा जनरेट हुए लेनदेन की कुल संख्या क्या है?

मानक SQL

जुलाई 2017 में, हर डिवाइस ब्राउज़र के लिए कुल लेन-देन
#standardSQL
SELECT
device.browser,
SUM ( totals.transactions ) AS total_transactions
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20170701' AND '20170731'
GROUP BY
device.browser
ORDER BY
total_transactions DESC

लेगसी एसक्यूएल

जुलाई 2017 में, हर डिवाइस ब्राउज़र के लिए कुल लेन-देन
SELECT
device.browser,
SUM ( totals.transactions ) AS total_transactions
FROM TABLE_DATE_RANGE( [bigquery-public-data.google_analytics_sample.ga_sessions_],
TIMESTAMP('2017-07-01'), TIMESTAMP('2017-07-31') )
GROUP BY
device.browser
ORDER BY
total_transactions DESC

 

 

हर [ आयाम ] के लिए औसत बाउंस रेट?

असल बाउंस रेट, एक ही पेज व्यू के साथ वेबसाइट पर आने वाले के प्रतिशत के रूप में तय किया गया है. सवाल के लिए नीचे उदाहरण स्क्रिप्ट दिए गए हैं: हर ट्रैफ़िक सोर्स के लिए असल बाउंस रेट क्या था?

मानक SQL

जुलाई 2017 में, हर ट्रैफ़िक सोर्स के लिए बाउंस रेट
#standardSQL
SELECT
source,
total_visits,
total_no_of_bounces,
( ( total_no_of_bounces / total_visits ) * 100 ) AS bounce_rate
FROM (
SELECT
trafficSource.source AS source,
COUNT ( trafficSource.source ) AS total_visits,
SUM ( totals.bounces ) AS total_no_of_bounces
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20170701' AND '20170731'
GROUP BY
source )
ORDER BY
total_visits DESC

लेगसी एसक्यूएल

जुलाई 2017 में, हर ट्रैफ़िक सोर्स के लिए बाउंस रेट
SELECT
source,
total_visits,
total_no_of_bounces,
( ( total_no_of_bounces / total_visits ) * 100 ) AS bounce_rate
FROM (
SELECT
trafficSource.source AS source,
COUNT ( trafficSource.source ) AS total_visits,
SUM ( totals.bounces ) AS total_no_of_bounces
FROM
TABLE_DATE_RANGE( [bigquery-public-data.google_analytics_sample.ga_sessions_],
TIMESTAMP('2017-07-01'), TIMESTAMP('2017-07-31') )
GROUP BY
source )
ORDER BY
total_visits DESC

 

 

खरीदार के टाइप (खरीदार बनाम सेवा या प्रॉडक्ट का मुफ़्त में इस्तेमाल करने वाला उपयोगकर्ता) के हिसाब से, प्रॉडक्ट के पेज व्यू की औसत संख्या

नीचे प्रश्न के लिए उदाहरण स्क्रिप्ट दिए गए हैं: जुलाई 2017 में खरीदारी करने वाले उपयोगकर्ताओं के लिए उत्पाद पेजव्यू की औसत संख्या क्या थी?

मानक SQL

जुलाई 2017 में, खरीदारी करने वाले उपयोगकर्ताओं के लिए, प्रॉडक्ट के पेज व्यू की औसत संख्या
#standardSQL
SELECT
( SUM(total_pagesviews_per_user) / COUNT(users) ) AS avg_pageviews_per_user
FROM (
SELECT
fullVisitorId AS users,
SUM(totals.pageviews) AS total_pagesviews_per_user
FROM`bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20170701' AND '20170731'
AND
totals.transactions >=1
GROUP BY
users )

लेगसी एसक्यूएल

जुलाई 2017 में, खरीदारी करने वाले उपयोगकर्ताओं के लिए, प्रॉडक्ट के पेज व्यू की औसत संख्या
SELECT
( SUM(total_pagesviews_per_user) / COUNT(users) ) AS avg_pageviews_per_user
FROM (
SELECT
fullVisitorId AS users,
SUM(totals.pageviews) AS total_pagesviews_per_user
FROM
TABLE_DATE_RANGE( [bigquery-public-data.google_analytics_sample.ga_sessions_],
TIMESTAMP('2017-07-01'), TIMESTAMP('2017-07-31') ) WHERE
totals.transactions >=1
GROUP BY
users )

 

 

सवाल के लिए उदाहरण स्क्रिप्ट नीचे दिए गए हैं: जुलाई 2017 में, खरीदारी नहीं करने वाले उपयोगकर्ताओं के लिए, प्रॉडक्ट के पेज व्यू की औसत संख्या कितनी थी?

मानक SQL

जुलाई 2017 में, खरीदारी न करने वाले उपयोगकर्ताओं के लिए, प्रॉडक्ट के पेज व्यू की औसत संख्या
#standardSQL
SELECT
( SUM(total_pagesviews_per_user) / COUNT(users) ) AS avg_pageviews_per_user
FROM (
SELECT
fullVisitorId AS users,
SUM(totals.pageviews) AS total_pagesviews_per_user
FROM`bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20170701' AND '20170731'
AND
totals.transactions IS NULL
GROUP BY
users )

लेगसी एसक्यूएल

जुलाई 2017 में, खरीदारी न करने वाले उपयोगकर्ताओं के लिए, प्रॉडक्ट के पेज व्यू की औसत संख्या
SELECT
( SUM(total_pagesviews_per_user) / COUNT(users) ) AS avg_pageviews_per_user
FROM (
SELECT
fullVisitorId AS users,
SUM(totals.pageviews) AS total_pagesviews_per_user
FROM
TABLE_DATE_RANGE( [bigquery-public-data.google_analytics_sample.ga_sessions_],
TIMESTAMP('2017-07-01'), TIMESTAMP('2017-07-31') ) WHERE
totals.transactions IS NULL
GROUP BY
users )

 

 

हर खरीदार के लेन-देन की औसत संख्या

नीचे प्रश्न के लिए उदाहरण स्क्रिप्ट दिए गए हैं: जुलाई 2017 में खरीदारी करने वाले प्रत्येक उपयोगकर्ता का औसत कुल लेनदेन क्या था?

मानक SQL

जुलाई 2017 में, खरीदारी करने वाले हर उपयोगकर्ता के लेन-देन की औसत संख्या
#standardSQL
SELECT
(SUM (total_transactions_per_user) / COUNT(fullVisitorId) ) AS avg_total_transactions_per_user
FROM (
SELECT
fullVisitorId,
SUM (totals.transactions) AS total_transactions_per_user
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20170701' AND '20170731'
AND totals.transactions IS NOT NULL
GROUP BY
fullVisitorId )

लेगसी एसक्यूएल

जुलाई 2017 में, खरीदारी करने वाले हर उपयोगकर्ता के लेन-देन की औसत संख्या
SELECT
(SUM (total_transactions_per_user) / COUNT(fullVisitorId) ) AS avg_total_transactions_per_user
FROM (
SELECT
fullVisitorId,
SUM (totals.transactions) AS total_transactions_per_user
FROM
TABLE_DATE_RANGE( [bigquery-public-data.google_analytics_sample.ga_sessions_],
TIMESTAMP('2017-07-01'), TIMESTAMP('2017-07-31') )
WHERE
totals.transactions IS NOT NULL
GROUP BY
fullVisitorId )

 

 

हर सेशन के लिए खर्च की गई औसत रकम

नीचे प्रश्न के लिए उदाहरण स्क्रिप्ट दिए गए हैं: जुलाई 2017 में प्रति सत्र खर्च की गई औसत राशि क्या है?

मानक SQL

जुलाई 2017 में, हर सेशन के लिए खर्च की गई औसत रकम
#standardSQL
SELECT
( SUM(total_transactionrevenue_per_user) / SUM(total_visits_per_user) ) AS
avg_revenue_by_user_per_visit
FROM (
SELECT
fullVisitorId,
SUM( totals.visits ) AS total_visits_per_user,
SUM( totals.transactionRevenue ) AS total_transactionrevenue_per_user
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20170701' AND '20170731'
AND
totals.visits > 0
AND totals.transactions >= 1
AND totals.transactionRevenue IS NOT NULL
GROUP BY
fullVisitorId )

लेगसी एसक्यूएल

जुलाई 2017 में, हर सेशन के लिए खर्च की गई औसत रकम
SELECT
( SUM(total_transactionrevenue_per_user) / SUM(total_visits_per_user) ) AS
avg_revenue_by_user_per_visit
FROM (
SELECT
fullVisitorId,
SUM( totals.visits ) AS total_visits_per_user,
SUM( totals.transactionRevenue ) AS total_transactionrevenue_per_user
FROM
TABLE_DATE_RANGE( [bigquery-public-data.google_analytics_sample.ga_sessions_],
TIMESTAMP('2017-07-01'), TIMESTAMP('2017-07-31') )
WHERE
totals.visits > 0
AND totals.transactions >= 1
AND totals.transactionRevenue IS NOT NULL
GROUP BY
fullVisitorId )

 

 

हिट का क्रम

नीचे प्रश्न के लिए उदाहरण स्क्रिप्ट दिए गए हैं: पेज का अनुक्रम क्या है?.

मानक SQL

जुलाई 2017 में, उपयोगकर्ताओं के देखे गए पेज का क्रम
#standardSQL
SELECT
fullVisitorId,
visitId,
visitNumber,
hits.hitNumber AS hitNumber,
hits.page.pagePath AS pagePath
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_*`,
UNNEST(hits) as hits
WHERE
_TABLE_SUFFIX BETWEEN '20170701' AND '20170731'
AND
hits.type="PAGE"
ORDER BY
fullVisitorId,
visitId,
visitNumber,
hitNumber

लेगसी एसक्यूएल

जुलाई 2017 में, उपयोगकर्ताओं के देखे गए पेज का क्रम
SELECT
fullVisitorId,
visitId,
visitNumber,
hits.hitNumber AS hitNumber,
hits.page.pagePath AS pagePath
FROM
TABLE_DATE_RANGE( [bigquery-public-data.google_analytics_sample.ga_sessions_],
TIMESTAMP('2017-07-01'), TIMESTAMP('2017-07-31') )
WHERE
hits.type="PAGE"
ORDER BY
fullVisitorId,
visitId,
visitNumber,
hitNumber

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

 

 

हिट या सेशन लेवल पर कई कस्टम डाइमेंशन

हिट लेवल पर कस्टम डाइमेंशन
SELECT fullVisitorId, visitId, hits.hitNumber, hits.time,
MAX(IF(hits.customDimensions.index=1,
hits.customDimensions.value,
NULL)) WITHIN hits AS customDimension1,
FROM [tableID.ga_sessions_20150305]
LIMIT 100

 

सेशन लेवल पर कस्टम डाइमेंशन
SELECT fullVisitorId, visitId,
MAX(IF(customDimensions.index=2,
customDimensions.value,
NULL)) WITHIN RECORD AS customDimension2,
FROM [tableID.ga_sessions_20150305]
LIMIT 100

हर क्वेरी में:

काम के डाइमेंशन और मेट्रिक फ़ील्ड के लिए, SELECT स्टेटमेंट क्वेरी.

MAX फ़ंक्शन:

  • नए कॉलम के रूप में कस्टम डाइमेंशन को लौटाता है. कई कस्टम डाइमेंशन को नए कॉलम के रूप में लौटाने के लिए, फ़ंक्शन को दोहराया जा सकता है.
  • WITHIN hits और WITHIN RECORD BigQuery की दोहराई जाने वाली फ़ील्ड में शर्त का मूल्यांकन करते हैं.
  • हर कस्टम डाइमेंशन के लिए MAX के भीतर मौजूद शर्त का मूल्यांकन किया जाता है, लेकिन जो index=1 (हिट) या index=2 (सेशन) नहीं होते, उनके लिए यह NULL भेजता है.
  • सबसे ज़्यादा वैल्यू वापस भेजता है, जो हिट के लिए कस्टम डाइमेंशन 1 की वैल्यू या सेशन के लिए कस्टम डाइमेंशन 2 की वैल्यू होता है, क्योंकि बाकी सभी वैल्यू NULL होती हैं.

उन्नत क्वेरी के उदाहरण

सामान्य क्वेरी से परिचित हो जाने के बाद, BIgQuery में मौजूद बेहतर फ़ंक्शन और सुविधाओं का इस्तेमाल करके क्वेरी को बनाया जा सकता है.

प्रॉडक्ट A खरीदने वाले ग्राहकों के ज़रिए खरीदे गए प्रॉडक्ट (क्लासिक ई-कॉमर्स)

नीचे, सवाल के लिए आधारभूत स्क्रिप्ट दी गई है: प्रॉडक्ट A खरीदने वाले ग्राहकों के ज़रिए अन्य कौनसे प्रॉडक्ट खरीदे गए हैं?

प्रॉडक्ट A खरीदने वाले ग्राहक के ज़रिए खरीदे गए प्रॉडक्ट (क्लासिक ई-कॉमर्स)
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity
FROM [‘Dataset Name’ ]
WHERE fullVisitorId IN (
  SELECT fullVisitorId
  FROM [‘Dataset Name’ ]
  WHERE hits.item.productName CONTAINS 'Product Item Name A'
   AND totals.transactions>=1
  GROUP BY fullVisitorId
)
 AND hits.item.productName IS NOT NULL
 AND hits.item.productName != 'Product Item Name A'
GROUP BY other_purchased_products
ORDER BY quantity DESC;
  1. पहली लाइन में, उपयोगकर्ता के खरीदे गए अन्य सभी आइटम चुने जाते हैं और एग्रीगेट फ़ंक्शन COUNT() का इस्तेमाल, खरीदे गए हर अन्य आइटम को गिनने के लिए किया जाता है. इसके बाद संख्या लेबल वाली फ़ील्ड में नतीजा दिखाया जाता है और उससे जुड़े आइटम, प्रॉडक्ट फ़ील्ड में other_purchased_products लेबल के रूप दिखता है.
  2. ग्रे रंग की सबक्वेरी में, सिर्फ़ ऐसे यूनीक उपयोगकर्ताओं (fullVisitorId) को चुना जाता है जिन्होंने लेन-देन (totals.transactions>=1) किए हैं और लेन-देन के दौरान, प्रॉडक्ट A (WHERE hits.item.productName CONTAINS 'Product Item Name A') खरीदा है.

टॉप लेवल (हरे रंग की) की क्वेरी में नियम (WHERE और AND स्टेटमेंट), hits.item.productName के उन वैल्यू को अनदेखा कर देते हैं जो शून्य हैं और जिनमें प्रॉडक्ट A शामिल है.

अगर कोई खरीदार, फ़ाउंटेन पेन खरीदता है - चार का सेट, तो उसने दूसरे कौन से प्रॉडक्ट खरीदे हैं? क्वेरी का एक उदाहरण यह है

'फ़ाउंटेन पेन (4 का सेट)' खरीदने वाले ग्राहक के ज़रिए, 24 जून, 2013 को खरीदे गए प्रॉडक्ट
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity
FROM [GoogleStore.ga_sessions_20130624]
WHERE fullVisitorId IN (
  SELECT fullVisitorId
  FROM [GoogleStore.ga_sessions_20130624]
  WHERE hits.item.productName CONTAINS 'Brighton Metallic Pens - Set of 4'
   AND totals.transactions>=1
  GROUP BY fullVisitorId
)
 AND hits.item.productName IS NOT NULL
 AND hits.item.productName !='Brighton Metallic Pens - Set of 4'
GROUP BY other_purchased_products
ORDER BY quantity DESC;

Dremel/BigQuery में, WHERE exp IN के इस्तेमाल से JOIN ट्रिगर होता है और साइज़ की पाबंदियां लागू होती हैं; खास तौर पर, JOIN (इस मामले में, वेबसाइट पर आने वाले लोगों की संख्या) के दाईं ओर का साइज़ 8 एमबी से कम होना चाहिए. Dremel में, इसे ब्रॉडकास्ट JOIN कहा जाता है. साइज़ 8 एमबी से ज़्यादा होने पर, आपको शफ़ल किए गए JOIN ट्रिगर करना होगा. ऐसा करने के लिए, JOIN EACH सिंटैक्स का इस्तेमाल करें. माफ़ करें, यह काम IN का इस्तेमाल करके नहीं किया जा सकता, लेकिन वही क्वेरी JOIN का इस्तेमाल करके फिर से लिखा जा सकता है.

प्रॉडक्ट A खरीदने वाले ग्राहकों के ज़रिए खरीदे गए प्रॉडक्ट (बेहतर ई-कॉमर्स)

यह पिछली आधारभूत क्वेरी के समान है, लेकिन उन्नत ईकॉमर्स के लिए काम करती है. यह कई दिनों तक डेटा क्वेरी के लिए TABLE_DATE_RANGE का इस्तेमाल भी करती है.

प्रॉडक्ट A खरीदने वाले की ओर से खरीदे गए प्रॉडक्ट (बेहतर ई-कॉमर्स)
SELECT hits.product.productSKU AS other_purchased_products, COUNT(hits.product.productSKU) AS quantity
FROM SELECT fullVisitorId, hits.product.productSKU, hits.eCommerceAction.action_type FROM TABLE_DATE_RANGE([73156703.ga_sessions_], TIMESTAMP('2015-07-01'), TIMESTAMP('2015-07-14')))
WHERE fullVisitorId IN (
  SELECT fullVisitorId
FROM TABLE_DATE_RANGE([73156703.ga_sessions_], TIMESTAMP('2015-07-01'), TIMESTAMP('2015-07-14'))
WHERE hits.product.productSKU CONTAINS '10 15103'
AND hits.eCommerceAction.action_type = '6'
GROUP BY fullVisitorId
)
AND hits.product.productSKU IS NOT NULL
AND hits.product.productSKU !='10 15103'
AND hits.eCommerceAction.action_type = '6'
GROUP BY other_purchased_products
ORDER BY quantity DESC;

खरीदारी से पहले उपयोगकर्ता इंटरैक्शन की औसत संख्या

यह JOIN() [...] ON कमांड की क्वेरी का एक उदाहरण है, जो सिर्फ़ Google Analytics डेटा पर निर्भर करता है.

सवाल की आधारभूत स्क्रिप्ट नीचे दी गई है: खरीदारी से पहले उपयोगकर्ता इंटरैक्शन की औसत संख्या क्या है?

खरीदारी से पहले उपयोगकर्ता इंटरैक्शन की संख्या
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number
FROM (
 SELECT hits.item.productSku, SUM(hits.hitNumber) AS sum_of_hit_number
 FROM [‘GA Dataset Name’ ]
 WHERE hits.item.productSku IS NOT NULL
  AND totals.transactions>=1
 GROUP BY hits.item.productSku
) AS ‘Alias_Name_1’
JOIN (
 SELECT hits.item.productSku, COUNT( fullVisitorId ) AS total_hits
 FROM [‘GA Dataset Name’ ]
 WHERE hits.item.productSku IS NOT NULL
  AND totals.transactions>=1
 GROUP BY hits.item.productSku
) AS ‘Alias_Name_2’
ON Alias_Name_1.hits.item.productSku = Alias_Name_2.hits.item.productSku;
  1. पहली लाइन, हर औसत उपयोगकर्ता इंटरैक्शन का पता लगाने के लिए, मुख्य गणितीय ऑपरेशन का इस्तेमाल करती है और यह क्वेरी ‘Alias_Name_1’ और ‘Alias_Name_2’ सबक्वेरी के बीच एक संबंध बनाती है.
  2. Alias_Name_1’ का इस्तेमाल एक ऐसा फ़ील्ड बनाने के लिए किया जाता है जो किसी प्रॉडक्ट के लिए रिकॉर्ड की गई हिट की कुल संख्या को जोड़ने के लिए एग्रीगेट फ़ंक्शन SUM() का इस्तेमाल करता है.
  3. Alias_Name_2’ का इस्तेमाल COUNT() फ़ंक्शन की मदद से, हर प्रॉडक्ट के लिए उपयोगकर्ताओं के हिट की संख्याओं का पता लगाने के लिए किया जाता है.
  4. अंतिम लाइन, दोनों डेटासेट के जुड़ने पर उनके बीच शेयर होने वाली समान फ़ील्ड (hits.item.productSku) को दिखाती है.

यहां 10 सितंबर 2013 को, किसी खरीदारी से पहले उपयोगकर्ता इंटरैक्शन की औसत संख्या क्या है? क्वेरी का एक उदाहरण दिया गया है.

खरीदारी से पहले, 10 सितंबर 2013 को उपयोगकर्ता इंटरैक्शन की संख्या
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number
FROM (
 SELECT hits.item.productSku, SUM(hits.hitNumber) AS sum_of_hit_number
 FROM [GoogleStore.ga_sessions_20130728]
 WHERE hits.item.productSku IS NOT NULL
  AND totals.transactions>=1
 GROUP BY hits.item.productSku 
) AS one
JOIN (
 SELECT hits.item.productSku, COUNT( fullVisitorId ) AS total_hits
 FROM [GoogleStore.ga_sessions_20130728]
 WHERE hits.item.productSku IS NOT NULL
  AND totals.transactions>=1
 GROUP BY hits.item.productSku
) AS two
ON one.hits.item.productSku = two.hits.item.productSku;

हर प्रॉडक्ट के बेचे गए स्टॉक का प्रतिशत

यह क्वेरी का एक उदाहरण है, जो न केवल Analytics डेटा पर निर्भर करता है, बल्कि गैर-Analytics डेटा पर भी निर्भर करता है. दोनों डेटा सेट को मिलाकर, उपयोगकर्ता व्यवहार को खास तौर से सेगमेंट लेवल पर समझा जा सकता है. आप गैर-Analytics डेटा को BigQuery में आयात कर सकते हैं, लेकिन ध्यान रखें कि इससे आपके मासिक डेटा संग्रहण शुल्क में वृद्धि होगी.

सवाल की आधारभूत स्क्रिप्ट नीचे दी गई है: हर प्रॉडक्ट के कितने प्रतिशत स्टॉक बेचे गए?

हर प्रॉडक्ट के बेचे गए स्टॉक का प्रतिशत
SELECT AnalyticsImport.product_data_20130728.productId, ((( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold )) * 100 ) AS percentage_of_stock_sold
FROM [ ‘Imported_DataSet’ ]
JOIN (
  SELECT hits.item.productSku, SUM( hits.item.itemQuantity ) AS quantity_sold
  FROM [‘GA Dataset’ ]
  WHERE hits.item.productSku IS NOT NULL
   AND totals.transactions>=1
  GROUP BY hits.item.productSku
) AS ‘Alias_Name’
ON Imported_DataSet.’productId_field’ = Alias_Name.hits.item.productSku;
  1. पहली लाइन दो फ़ील्ड उपलब्ध कराती है: एक फ़ील्ड में सारे प्रॉडक्ट आईडी होते हैं. दूसरी, जो एक गणितीय ऑपरेशन है, वह उस प्रॉडक्ट आईडी के लिए बेचे गए स्टॉक का प्रतिशत दिखाती है.
  2. यह क्वेरी, दो डेटा सेट पर निर्भर करती है. इसलिए, आपको join() ... ON फ़ंक्शन का इस्तेमाल करना होगा. यह निर्देश उन दोनों में समान फ़ील्ड के आधार पर दोनों डेटा सेट से मिलने वाली पंक्तियां जोड़ देता है. इस मामले में, दो डेटा सेट हैं [ ‘Imported_DataSet’ ] और ‘Alias_Name’.
  3. [ ‘Imported_DataSet’ ] गैर-Analytics डेटा है. यह वह डेटा सेट है जिसमें बचे हुए स्टॉक के लिए मेट्रिक फ़ील्ड होती है (Imported DataSet.’stock_left_field’) and the product-ID dimension field (Imported_DataSet.’productId_field’).
  4. ‘Alias_Name’, ग्रे रंग की सबक्वेरी से मिले डेटा को असाइन किया गया नाम है. यह सबक्वेरी, प्रति प्रॉडक्ट के बेचे गए आइटम की कुल संख्या का पता लगाने के लिए Analytics डेटा का इस्तेमाल कर रही है.
  5. अंतिम लाइन, दो डेटासेट के बीच की कॉमन फ़ील्ड और दो डेटा सेट के जुड़े होने की जगह को दिखाने के लिए ON स्टेटमेंट का इस्तेमाल करती है.

इस क्वेरी में कई वैरिएबल के डेटासेट का नाम, प्रीफ़िक्स के तौर पर जुड़ा है (उदाहरण के लिए, Imported_DataSet.’productId_field’, Alias_Name.quantity_sold). इससे यह साफ़ होता है कि किस फ़ील्ड को चुना जा रहा है और वह किस डेटासेट से जुड़ा है.

यहां 28 जुलाई 2013 को हर प्रॉडक्ट के स्टॉक का कितना प्रतिशत बेचा गया था? क्वेरी का एक उदाहरण दिया गया है

28 जुलाई 2013 को हर प्रॉडक्ट के बेचे गए स्टॉक का प्रतिशत
SELECT AnalyticsImport.product_data_20130728.productId, ( ( ( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold ) ) * 100 ) AS percentage_of_stock_sold
FROM AnalyticsImport.product_data_20130728
JOIN (
  SELECT hits.item.productSku, SUM( hits.item.itemQuantity ) AS quantity_sold
  FROM GoogleStore.ga_sessions_20130728
  WHERE hits.item.productSku IS NOT NULL
   AND totals.transactions>=1
  GROUP BY hits.item.productSku
) AS one
ON AnalyticsImport.product_data_20130728.productId = one.hits.item.productSku
ORDER BY percentage_of_stock_sold DESC;

हर प्रॉडक्ट से होने वाला मुनाफ़ा

सवाल की बुनियादी स्क्रिप्ट नीचे दी गई है: हर प्रॉडक्ट से होने वाला मुनाफ़ा कितना है?

प्रॉडक्ट के हिसाब से मुनाफ़ा
SELECT Alias_Name.hits.item.productSku, ( Imported_DataSet.’product profit field’ * Alias_Name.quantity ) AS profit
FROM (
  SELECT Alias_Name.hits.item.productSku, Imported_DataSet.’product profit field’
  FROM [ ‘Imported Data Set’ ]
  JOIN (
    SELECT hits.item.productSku, SUM( hits.item.itemQuantity ) AS quantity
    FROM [ ‘GA Dataset Name’ ]
    WHERE hits.item.productSku IS NOT NULL
    GROUP BY hits.item.productSku
) AS ‘Alias_Name’
  ON Imported_DataSet.productId = Alias_Name.hits.item.productSku
);
  1. पहली लाइन में हर प्रॉडक्ट से हुए कुल मुनाफ़े की गिनती के लिए, गणित के हिसाब से कार्रवाई शामिल होती है.
  2. ग्रे रंग की सबक्वेरी, Analytics के बाहर के डेटा का इस्तेमाल करती है, जो किसी प्रॉडक्ट की बिक्री से होने वाले मुनाफ़े के बारे में डेटा इकट्ठा करती है.
  3. लाल रंग की सबक्वेरी Analytics डेटा सबक्वेरी है, जिसे गैर-Analytics डेटा के साथ जोड़ा जाएगा. यह, हर प्रॉडक्ट के लिए बेचे गए आइटम की संख्या की गिनती करती है.
  4. आखिरी लाइन, दो डेटा सेट से शेयर की जाने वाली फ़ील्ड को साफ़ तौर पर बताने के लिए ON स्टेटमेंट का इस्तेमाल करती है. इस मामले में, यह प्रॉडक्ट आईडी नंबर है.

इस क्वेरी का उदाहरण नीचे दिया गया है कि 28 जुलाई 2013 को हर प्रॉडक्ट से होने वाला मुनाफ़ा कितना था?

प्रॉडक्ट के हिसाब से, 28 जुलाई 2013 को हुआ मुनाफ़ा
SELECT two.hits.item.productSku, ((AnalyticsImport.product_data_20130728.productprice-AnalyticsImport.product_data_20130728.productcost)*two.quantity) AS profit
FROM (
  SELECT two.hits.item.productSku, AnalyticsImport.product_data_20130728.productcost, two.quantity, AnalyticsImport.product_data_20130728.productprice
  FROM AnalyticsImport.product_data_20130728
  JOIN (
    SELECT hits.item.productSku, SUM( hits.item.itemQuantity ) AS quantity
    FROM GoogleStore.ga_sessions_20130728
    WHERE hits.item.productSku IS NOT NULL
    GROUP BY hits.item.productSku
) AS two
  ON AnalyticsImport.product_data_20130728.productId = two.hits.item.productSku
);

मुनाफ़े का पता लगाने के लिए, प्रॉडक्ट को कितने में बेचा गया और उसे बनाने में कितना खर्च हुआ, इसके अंतर का पता लगाया जाता है. यह जानकारी, Google Analytics के बाहर के डेटासेट पर सेव करके रखी जाती है.

हर प्रॉडक्ट से होने वाला असल मुनाफ़ा (रिफ़ंड को ध्यान में रखते हुए)

सवाल की बुनियादी स्क्रिप्ट नीचे दी गई है: हर प्रॉडक्ट से होने वाला असल मुनाफ़ा कितना है?

प्रॉडक्ट के हिसाब से असल मुनाफ़ा
SELECT Alias_Name.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit
FROM (
  SELECT Alias_Name.hits.item.productSku, ( ( Imported_DataSet.productprice - Imported_DataSet.productcost ) * Alias_Name.quantity ) AS gross_profit, ( ( Imported_DataSet.refunddeliveryprice + Imported_DataSet.productprice ) * Imported_DataSet.refundquantity ) AS total_refund_revenue
  FROM (

    SELECT Alias_Name.hits.item.productSku, Imported_DataSet.productcost, Alias_Name.quantity, Imported_DataSet.productprice, Imported_DataSet.refunddeliveryprice, Imported_DataSet.refundquantity
    FROM [ ‘Imported DataSet Name’ ] AS 'Imported_DataSet'
    JOIN (
      
SELECT hits.item.productSku, SUM( hits.item.itemQuantity ) AS quantity
      FROM [‘GA Dataset Name’ ]
      WHERE hits.item.productSku IS NOT NULL
       AND totals.transactions >=1
      GROUP BY hits.item.productSku
) AS 'Alias_Name'
    ON Imported_DataSet.productId = Alias_Name.hits.item.productSku )
);
  1. यह क्वेरी, इससे काफ़ी मिलती-जुलती है कि हर प्रॉडक्ट से होने वाला मुनाफ़ा कितना है? इसमें अंतर, Analytics के बाहर के डेटासेट वाली ग्रे रंग की सबक्वेरी और पहली लाइन में असल मुनाफ़े की गिनती करने के लिए गणित के हिसाब से कार्रवाई में है.
  2. Analytics के बाहर के डेटासेट में, रिफ़ंड पर खर्च की गई कुल रकम की भी गिनती की जा रही है (लाल रंग की सबक्वेरी के SELECT स्टेटमेंट में).
  3. इसके बाद, अपने कुल मुनाफ़े से रिफ़ंड में हुए खर्च को घटाकर, पहली लाइन में असल मुनाफ़े की गिनती करने के लिए, गणित के हिसाब से कार्रवाई की जाती है.

क्वेरी के बारे में ज़्यादा जानकारी के लिए, कृपया हर प्रॉडक्ट से होने वाले मुनाफ़े से जुड़ा सेक्शन देखें.

यहां पर इस क्वेरी का उदाहरण दिया गया है कि 28 जुलाई 2013 को हर प्रॉडक्ट से होने वाला असल मुनाफ़ा कितना था?

प्रॉडक्ट के हिसाब से, 28 जुलाई 2013 को हुआ असल मुनाफ़ा
SELECT two.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit
FROM (
  SELECT two.hits.item.productSku, ( ( AnalyticsImport.product_data_20130728.productprice - AnalyticsImport.product_data_20130728.productcost ) * two.quantity ) AS gross_profit, ( ( AnalyticsImport.product_data_20130728.refunddeliveryprice + AnalyticsImport.product_data_20130728.productprice ) * AnalyticsImport.product_data_20130728.refundquantity ) AS total_refund_revenue
  FROM (

    SELECT two.hits.item.productSku, Analytics.product_data_20130728.productcost, two.quantity, AnalyticsImport.product_data_20130728.productprice, AnalyticsImport.product_data_20130728.refunddeliveryprice, AnalyticsImport.product_data_20130728.refundquantity
    FROM AnalyticsImport.product_data_20130728
    JOIN (

      SELECT hits.item.productSku, SUM( hits.item.itemQuantity ) AS quantity
      FROM GoogleStore.ga_sessions_20130728
      WHERE hits.item.productSku IS NOT NULL
       AND totals.transactions >=1
      GROUP BY hits.item.productSku
) AS two
    ON AnalyticsImport.product_data_20130728.productId = two.hits.item.productSku )
);

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

प्रॉडक्ट के लिए, रिफ़ंड से हुई कुल आय = ( प्रॉडक्ट की कीमत + प्रॉडक्ट का रिफ़ंड) * रिफ़ंड किए गए प्रॉडक्ट की संख्या

क्या यह उपयोगी था?

हम उसे किस तरह बेहतर बना सकते हैं?
true
अपना लर्निंग पाथ चुनें

Google Analytics 4 का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, नई वेबसाइट google.com/analytics/learn पर जाएं. नई वेबसाइट में वीडियो, लेख, और आपको गाइड करने के लिए बनी प्रोसेस शामिल हैं. साथ ही, इसमें Google Analytics Discord, Blog, YouTube चैनल, और GitHub का डेटा स्टोर करने की जगह के लिंक दिए गए हैं.

आज ही सीखना शुरू करें!

खोजें
खोज हटाएं
खोज बंद करें
Google ऐप
मुख्य मेन्यू