BigQuery में Joins

BigQuery परिचय

Matthew Forrest

Field CTO

BigQuery में डेटा जोड़ना (Joining)

  • INNER JOIN: वैल्यू दोनों टेबल में हों।

  • LEFT JOIN: बाएँ टेबल की सभी पंक्तियाँ, दाएँ से मैच।

  • RIGHT JOIN: दाएँ टेबल की सभी पंक्तियाँ, बाएँ से मैच।

  • FULL JOIN: दोनों टेबल की सभी पंक्तियाँ, मैच और नॉन-मैच दोनों।

  • CROSS JOIN: दोनों टेबल की हर पंक्ति हर पंक्ति से मैच।

SQL joins को विज़ुअली दिखाता इमेज

BigQuery परिचय

Joins के वास्तविक उदाहरण

Customers: बायाँ टेबल

Orders: दायाँ टेबल

  • INNER JOIN: मेल खाते customers और उनके orders

  • LEFT JOIN: सभी customers दिखाएँ, भले ही कोई order न हो

  • RIGHT JOIN: सभी orders दिखाएँ, भले ही customer ID गायब हो

  • FULL JOIN: सभी customers और सभी orders, भले ही कुछ ने इंटरैक्ट न किया हो

  • CROSS JOIN: बिना किसी शर्त के हर order को हर customer से मैच करें

BigQuery परिचय

INNER JOIN

  • केवल दोनों datasets से मैचिंग नतीजे लौटाता है
SELECT
  c.customer_id, s.product_name
FROM customers c
-- The INNER keyword is optional
JOIN sales_data s
ON c.customer_id = s.customer_id;
| customer_id | product_name         |
|-------------|----------------------|
| 1           | Bluetooth Headphones |
| 2           | Running Shoes        |
BigQuery परिचय

LEFT JOIN

  • LEFT dataset की सभी पंक्तियाँ लौटाता है
SELECT
  c.customer_id, s.product_name
FROM customers c
LEFT JOIN sales_data s
ON c.customer_id = s.customer_id;
| customer_id | product_name         |
|-------------|----------------------|
| 1           | Bluetooth Headphones |
| 2           | Running Shoes        |
| 3           | null                 |
BigQuery परिचय

RIGHT JOIN

  • RIGHT dataset की सभी पंक्तियाँ लौटाता है
SELECT
  c.customer_id, s.product_name
FROM customers c
RIGHT JOIN sales_data s
ON c.customer_id = s.customer_id;
| customer_id | product_name         |
|-------------|----------------------|
| 1           | Bluetooth Headphones |
| 2           | Running Shoes        |
| null        | External Microphone  |
BigQuery परिचय

OUTER JOIN

  • एक "RIGHT-LEFT" जॉइन: RIGHT और LEFT दोनों datasets की सभी पंक्तियाँ
SELECT
  c.customer_id, s.product_name
FROM customers c
OUTER JOIN sales_data s
ON c.customer_id = s.customer_id;
| customer_id | product_name         |
|-------------|----------------------|
| 1           | Bluetooth Headphones |
| 2           | Running Shoes        |
| 3           | null                 |
| null        | External Microphone  |
BigQuery परिचय

SELF या CROSS JOIN

  • एक Cartesian जॉइन - हर पंक्ति हर पंक्ति के साथ
SELECT
  c.customer_id,
  s.product_name,

-- Adding table names separated 
-- by a comma is a CROSS JOIN
-- Order is determined by the
-- left table, here "customers"
FROM customers c, sales_data s;
| customer_id | product_name         |
|-------------|----------------------|
| 1           | Bluetooth Headphones |
| 1           | null                 |
| 2           | Bluetooth Headphones |
| 2           | null                 |
| 3           | null                 |
| 3           | Bluetooth Headphones |
BigQuery परिचय

Joins और UNNEST

  • Unnested डेटा जोड़ने में भी उपयोगी
SELECT
  c.customer_id,
  payments.method
FROM customers c, 
UNNEST(
  customers.payment_methods
) payments;
| customer_id | product_name |
|-------------|--------------|
| 1           | Visa         |
| 1           | Mastercard   |
| 1           | Venmo        |
| 1           | Paypal       |
| 2           | Amex         |
| 2           | Visa         |
BigQuery परिचय

अभ्यास करते हैं!

BigQuery परिचय

Preparing Video For Download...