حدد …
ينطبق على: Databricks SQL Databricks Runtime
إنشاء مجموعة نتائج من مرجع جدول واحد أو أكثر.
SELECT
يمكن أن تكون العبارة جزءا من استعلام يتضمن أيضا تعبيرات الجدول الشائعة (CTE) وعمليات التعيين وعبارات أخرى مختلفة.
بناء الجملة
SELECT [ hints ] [ ALL | DISTINCT ] { named_expression | star_clause } [, ...]
FROM table_reference [, ...]
[ LATERAL VIEW clause ]
[ WHERE clause ]
[ GROUP BY clause ]
[ HAVING clause]
[ QUALIFY clause ]
named_expression
expression [ column_alias ]
star_clause
[ { table_name | view_name } . ] * [ except_clause ]
except_clause
EXCEPT ( { column_name | field_name } [, ...] )
المعلمات
-
تساعد التلميحات محسن Azure Databricks على اتخاذ قرارات تخطيط أفضل. يدعم Azure Databricks التلميحات التي تؤثر على اختيار استراتيجيات الانضمام وإعادة تقسيم البيانات.
جميع
حدد كافة الصفوف المطابقة من مراجع الجدول. ممكَّن بشكل افتراضي.
متميزه
حدد كافة الصفوف المطابقة من مراجع الجدول بعد إزالة التكرارات في النتائج.
named_expression
تعبير باسم اختياري معين.
-
مزيج من قيمة واحدة أو أكثر وعوامل التشغيل ودالات SQL التي يتم تقييمها إلى قيمة.
-
معرف عمود اختياري يسمي نتيجة التعبير. إذا لم
column_alias
يتم توفير Databricks SQL، فيستمد واحد.
-
-
اختصار لتسمية كافة الأعمدة القابلة للرجوع إليها في العبارة
FROM
أو أعمدة أو حقول مرجع جدول معين في العبارةFROM
. -
مصدر إدخال ل
SELECT
. يمكن تحويل مرجع الإدخال هذا إلى مرجع دفق باستخدامSTREAM
الكلمة الأساسية قبل المرجع. -
يستخدم بالاقتران مع دوال المولد مثل
EXPLODE
، والذي ينشئ جدولا ظاهريا يحتوي على صف واحد أو أكثر.LATERAL VIEW
تطبيق الصفوف على كل صف إخراج أصلي.في Databricks SQL، وبدءا من Databricks Runtime 12.2 يتم إهمال هذه العبارة. يجب استدعاء دالة منشئ قيم الجدول كدالة table_reference.
-
تصفية نتيجة العبارة
FROM
استنادا إلى التقييمات المقدمة. -
التعبيرات المستخدمة لتجميع الصفوف. يتم استخدام هذا بالاقتران مع الدالات التجميعية (
MIN
،MAX
، ،COUNT
،SUM
،AVG
) لتجميع الصفوف استنادا إلى تعبيرات التجميع والقيم التجميعية في كل مجموعة.FILTER
عند إرفاق عبارة بدالة تجميعية، يتم تمرير الصفوف المطابقة فقط إلى تلك الدالة. -
دالات التقييم التي يتم من خلالها تصفية الصفوف التي يتم إنتاجها
GROUP BY
.HAVING
يتم استخدام العبارة لتصفية الصفوف بعد تنفيذ التجميع. إذا قمت بتحديدHAVING
بدونGROUP BY
، فإنه يشير إلىGROUP BY
بدون تعبيرات تجميع (تجميع عمومي). -
دالات التقييم المستخدمة لتصفية نتائج دالات النافذة. لاستخدام
QUALIFY
، يلزم وجود دالة نافذة واحدة على الأقل في قائمة SELECT أو عبارة QUALIFY.
تحديد على جدول Delta
بالإضافة إلى الخيارات القياسية SELECT
، تدعم جداول Delta خيارات السفر عبر الوقت الموضحة في هذا القسم. للحصول على التفاصيل، راجع العمل مع محفوظات جدول Delta Lake.
AS OF
بناء الجمله
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
timestamp_expression
يمكن أن يكون أي واحد من:'2018-10-18T22:15:12.013Z'
، أي سلسلة يمكن تحويلها إلى طابع زمنيcast('2018-10-18 13:36:32 CEST' as timestamp)
'2018-10-18'
، أي سلسلة تاريخcurrent_timestamp() - interval 12 hours
date_sub(current_date(), 1)
- أي تعبير آخر يتم تحويله أو يمكن تحويله إلى طابع زمني
version
هي قيمة طويلة يمكن الحصول عليها من إخراجDESCRIBE HISTORY table_spec
.
لا timestamp_expression
يمكن ولا version
الاستعلامات الفرعية.
مثال
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM delta.`/mnt/delta/events` VERSION AS OF 123
@
بناء الجمله
استخدم بناء الجملة @
لتحديد الطابع الزمني أو الإصدار. يجب أن يكون الطابع الزمني بالتنسيق yyyyMMddHHmmssSSS
. يمكنك تحديد إصدار بعد @
عن طريق إلحاق بالإصدار v
. على سبيل المثال، للاستعلام عن إصدار 123
الجدول events
، حدد events@v123
.
مثال
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
الأمثلة
-- select all referencable columns from all tables
> SELECT * FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
1 2 3 4
-- select all referencable columns from one table
> SELECT t2.* FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
3 4
-- select all referencable columns from all tables except t2.c4
> SELECT * EXCEPT(c4) FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
1 2 3
-- select all referencable columns from a table, except a nested field.
> SELECT * EXCEPT(c2.b) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
1 { "a" : 2 }
-- Removing all fields results in an empty struct
> SELECT * EXCEPT(c2.b, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
1 { }
-- Overlapping names result in an error
> SELECT * EXCEPT(c2, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
Error: EXCEPT_OVERLAPPING_COLUMNS
المقالات ذات الصلة
- عبارة CLUSTER BY
- تعبير الجدول الشائع (CTE)
- عبارة DISTRIBUTE BY
- عبارة GROUP BY
- عبارة HAVING
- عبارة التأهل
- تلميحات
- عبارة VALUES
- الانضمام
- عبارة LATERAL VIEW
- عبارة LIMIT
- عبارة OFFSET
- عبارة ORDER BY
- عبارة PIVOT
- الاستعلام
- عبارة TABLESAMPLE
- تعيين عوامل التشغيل
- عبارة SORT BY
- عبارة نجمية
- دالة ذات قيمة جدول (TVF)
- مرجع الجدول
- عبارة UNPIVOT
- عبارة WHERE
- عبارة WINDOW
- دوال النافذة