BigQuery dường như không có hỗ trợ cho UNION nào: https://developers.google.com/bigquery/docs/query-referenceHỗ trợ chức năng UNION trong BigQuery SQL
(.. Tôi không có ý unioning bảng với nhau cho nguồn Nó có đó)
Có đến sớm?
BigQuery dường như không có hỗ trợ cho UNION nào: https://developers.google.com/bigquery/docs/query-referenceHỗ trợ chức năng UNION trong BigQuery SQL
(.. Tôi không có ý unioning bảng với nhau cho nguồn Nó có đó)
Có đến sớm?
Nếu bạn muốn UNION để bạn có thể kết hợp kết quả truy vấn, bạn có thể sử dụng subselects trong BigQuery:
SELECT foo, bar
FROM
(SELECT integer(id) AS foo, string(title) AS bar
FROM publicdata:samples.wikipedia limit 10),
(SELECT integer(year) AS foo, string(state) AS bar
FROM publicdata:samples.natality limit 10);
Đây là gần như chính xác tương đương với SQL
SELECT id AS foo, title AS bar
FROM publicdata:samples.wikipedia limit 10
UNION ALL
SELECT year AS foo, state AS bar
FROM publicdata:samples.natality limit 10;
(lưu ý rằng nếu muốn SQL UNION và không UNION TẤT CẢ việc này sẽ không hoạt động)
Cách khác, bạn có thể chạy hai truy vấn và nối thêm kết quả.
Các đoàn thể thực sự được hỗ trợ. Đoạn trích từ liên kết mà bạn đã đăng:
Lưu ý: Không giống như nhiều hệ thống dựa trên SQL khác, BigQuery sử dụng cú pháp dấu phẩy để biểu thị công đoàn bảng chứ không phải tham gia. Điều này có nghĩa bạn có thể chạy một truy vấn trên nhiều bảng với lược đồ tương thích như sau:
// Tìm hoạt động đáng ngờ trong vài ngày
SELECT FORMAT_UTC_USEC(event.timestamp_in_usec) AS time, request_url
FROM [applogs.events_20120501], [applogs.events_20120502], [applogs.events_20120503]
WHERE event.username = 'root' AND NOT event.source_ip.is_internal;
Điều đó đề cập đến các bảng kết hợp với nhau cho nguồn. Đó là tính năng mà tôi đã đề cập cụ thể không phải là những gì tôi cần. – mdahlman
Tôi hiểu rồi. Tôi đã không hiểu ý bạn bằng cách "kết hợp với nhau cho nguồn" ban đầu. Tôi thực sự kết thúc làm một cái gì đó tương tự như những gì Jordan đề xuất cho một kịch bản mà tôi cần tên bảng trong tập kết quả. Tôi đặt tên_bảng trong các truy vấn bên trong và chọn chúng từ truy vấn bên ngoài, ví dụ: CHỌN table_name, tiêu đề, trạng thái FROM (SELECT "publicdata: samples.wikipedia" AS table_name, string (title) AS title TỪ publicdata: samples.wikipedia limit 10), (SELECT "publicdata: samples.natality" AS table_name, string (trạng thái) AS trạng thái FROM publicdata: samples.natality limit 10) –
Bạn luôn có thể làm:
SELECT * FROM (query 1), (query 2);
Nó hiện giống như:
SELECT * from query1 UNION select * from query 2;
Vâng, nó hoạt động. Nó giống với những gì Jordan đã đăng 2,5 năm trước. – mdahlman
BigQuery đã thêm hỗ trợ gần đây cho Standard SQL, bao gồm hoạt động UNION
.
Khi gửi một truy vấn thông qua giao diện web, chỉ cần đảm bảo để bỏ chọn "Use Legacy SQL" dưới đề mục SQL Version:
Điều quan trọng là bạn nên sử dụng UNION với từ khóa thứ hai: UNION ALL hoặc UNION DISTINCT, xem [liên kết sau] (https://cloud.google.com/bigquery/docs/reference/standard-sql/query -syntax # union) –
@RogierWerschkull true dat. – olebebo
Lưu ý rằng, nếu bạn đang sử dụng SQL chuẩn, dấu phẩy hành tại nghĩa JOIN
-you have to use the UNION
syntax if you want a union:
trong SQL di sản, các nhà điều hành dấu phẩy, có ý nghĩa phi tiêu chuẩn của UNION ALL khi áp dụng cho bảng. Trong SQL chuẩn, toán tử dấu phẩy có ý nghĩa chuẩn của JOIN.
Ví dụ:
#standardSQL
SELECT
column_name,
count(*)
from
(SELECT * FROM me.table1 UNION ALL SELECT * FROM me.table2)
group by 1
ahh ... rất thông minh. Việc thêm hai truy vấn không phải là một tùy chọn trong trường hợp của tôi, nhưng việc xây dựng này có vẻ như nó sẽ hoạt động. – mdahlman
Cũng giống như một lưu ý, như bạn đã đề cập, đây không phải là một UNION, mà là UNION ALL [Xem bài viết khác] (http: // stackoverflow).com/questions/49925/what-is-the-khác biệt-giữa-union-và-union-tất cả) – hoggkm
hello @ Jordan-Tigani nếu tôi gọi như trên truy vấn như sau đó hồ sơ hàng đầu sẽ được wikipedia và sau đó của natality. Tôi muốn biết trình tự có duy trì hay không. chỉ muốn clerify. –