الدوال

هناك العديد من أنواع الدوال التي يمكنك استخدامها في التعبيرات.

الموضوعات:

دوال التحليلات

تتيح لك دوال التحليلات استكشاف البيانات باستخدام النماذج مثل التنبؤ وخط الاتجاه والمجموعات. بدلاً من ذلك، يمكنك سحب دوال التحليلات وإفلاتها في محرر المصنف.

بدلاً من ذلك، يمكنك إضافة التنبؤات وخطوط الاتجاهات والمجموعات إلى مصنف من خلال تحديدها في علامة تبويب التحليلات في لوحة البيانات في محرر المصنف. يرجى الاطلاع على إضافة دوال تحليلية إحصائية إلى التمثيلات المرئية.

الدالة مثال الوصف الصياغة

CLUSTER

CLUSTER((product, company), (billed_quantity, revenue), 'clusterName', 'algorithm=k-means;numClusters=%1;maxIter=%2;useRandomSeed=FALSE;enablePartitioning=TRUE', 5, 10)

تجمع عددًا من السجلات في مجموعات استنادًا إلى تعبير إدخال أو أكثر باستخدام تجميع K-Means أو تجميع متدرج.

CLUSTER((dimension_expr1 , ... dimension_exprN), (expr1, ... exprN), output_column_name, options, [runtime_binded_options])

FORECAST

مثال للتنبؤ بالإيرادات حسب اليوم

يحدد هذا المثال التنبؤ بالإيرادات حسب اليوم.

FORECAST("A - Sample Sales"."Base Facts"."1- Revenue" Target,
("A - Sample Sales"."Time"."T00 Calendar Date"),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

مثال للتنبؤ بالإيرادات حسب العام وربع العام

يحدد هذا المثال التنبؤ بالإيرادات حسب السنة وربع السنة.

FORECAST("A - Sample Sales"."Base Facts"."1- Revenue",
("A - Sample Sales"."Time"."T01 Year" timeYear, "A - Sample Sales"."Time"."T02 Quarter" TimeQuarter),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

تكوين نموذج متوالية زمنية لمقياس محدد بالمتوالية باستخدام التسوية الأسية (ETS) أو ARIMA الموسمية أو ARIMA. تقوم هذه الدالة بإخراج تنبؤ لمجموعة من الفترات الزمنية كما هو محدد حسب وسيطة numPeriods.

الاطلاع أيضًا على خيارات إضافية لدالة FORECAST أدناه.

FORECAST(measure, ([series]), output_column_name, options,[runtime_binded_options])])

حيث:

  • measure يمثل القياس اللازم للتنبؤ، على سبيل المثال، بيانات الإيرادات.

  • series يمثل دقة الوقت المستخدمة لتكوين نموذج التنبؤ. هذه السلسلة قائمة تشتمل على عمود بُعد زمني واحد أو أكثر. في حالة حذف series، فسيتم تحديد مستوى الدقة الزمنية من خلال الاستعلام.

  • output_column_name يمثل أسماء الأعمدة الصالحة forecast و low وhigh وpredictionInterval.

  • options يمثل قائمة مسلسلة من أزواج من الأسماء أو القيم تفصل بينها فاصلة منقوطة (;). يمكن أن تتضمن القيمة %1 ... %N المحددة في runtime_binded_options.

  • runtime_binded_options يمثل قائمة مفصولة بفواصل للأعمدة والخيارات. يتم تقييم قيم هذه الأعمدة والخيارات وحلها أثناء وقت تنفيذ استعلام فردي.

الاطلاع أيضًا على خيارات إضافية لدالة FORECAST أدناه.

OUTLIER

OUTLIER((product, company), (billed_quantity, revenue), 'isOutlier', 'algorithm=kmeans')

تصنيف سجل كقيمة شاذة تبعًا لتعبير إدخال أو أكثر باستخدام إما K-Means أو تجميع متدرج أو منوالات للكشف عن القيم الشاذة متعددة المتغيرات.

OUTLIER((dimension_expr1 , ... dimension_exprN), (expr1, ... exprN), output_column_name, options, [runtime_binded_options])

REGR

REGR(revenue, (discount_amount), (product_type, brand), 'fitted', '')

تتوافق مع نموذج خطي وترجع القيم أو النموذج المتوافق. يمكن استخدام هذه الدالة للتوافق مع منحنى خطي على مقياسين.

REGR(y_axis_measure_expr, (x_axis_expr), (category_expr1, ..., category_exprN), output_column_name, options, [runtime_binded_options])

TRENDLINE

TRENDLINE(revenue, (calendar_year, calendar_quarter, calendar_month) BY (product), 'LINEAR', 'VALUE')

توصي Oracle بتطبيق خط اتجاه باستخدام خاصية إضافة إحصائيات عند عرض تمثيل مرئي. يرجى الاطلاع على تعديل خصائص التمثيلات المرئية.

تتوافق مع نموذج خطي أو متعدد الحدود أو أسي وترجع القيم أو النموذج المتوافق. تمثِّل numeric_expr القيمة Y للاتجاه وتمثِّل series (أعمدة الوقت) القيمة X.

TRENDLINE(numeric_expr, ([series]) BY ([partitionBy]), model_type, result_type)

خيارات دالة FORECAST يسرد الجدول التالي الخيارات المتاحة للاستخدام مع دالة FORECAST.

اسم الخيار القيم الوصف
numPeriods عدد صحيح عدد الفترات المطلوب التنبؤ بها.
predictionInterval 0 إلى 100، حيث تشير القيم الأعلى إلى مستوى أكبر من الثقة مستوى الثقة للتنبؤ.
modelType

ETS (التسوية الأسية)

SeasonalArima

ARIMA

النموذج المطلوب استخدامه في التنبؤ.
useBoxCox

TRUE

FALSE

إذا كانت القيمة TRUE، فاستخدم تحويل Box-Cox.
lambdaValue غير قابل للتطبيق

معلمة تحويل Box-Cox.

يتم التجاهل إذا كانت القيمة NULL أو عندما تكون قيمة useBoxCox هي FALSE.

وخلاف ذلك يتم تحويل البيانات قبل تقييم النموذج.

trendDamp

TRUE

FALSE

هذا خاص بنموذج التسوية الأسية.

إذا كانت القيمة TRUE، فاستخدم الاتجاه المتضائل. إذا كانت القيمة FALSE أو NULL، فاستخدم الاتجاه غير المتضائل.

errorType

غير قابل للتطبيق

هذا خاص بنموذج التسوية الأسية.
trendType

N (بلا)

A (مُضاف)

M (مُضاعف)

Z (محدد تلقائيًا)

هذا خاص بنموذج التسوية الأسية
seasonType

N (بلا)

A (مُضاف)

M (مُضاعف)

Z (محدد تلقائيًا)

هذا خاص بنموذج التسوية الأسية
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (هذا هو الافتراضي)

معيار المعلومات المطلوب استخدامه في تحديد النموذج.

دوال التحويل

تقوم دوال التحويل بتحويل قيمة من شكل لآخر.

الدالة مثال الوصف الصياغة

CAST

CAST(hiredate AS CHAR(40)) FROM employee

تقوم بتغيير نوع بيانات تعبير أو حرف خال إلى نوع بيانات آخر. على سبيل المثال، يمكنك تحويل customer_name (نوع بيانات CHAR أو VARCHAR) أو birthdate (تاريخ/وقت حرفي).

استخدم CAST للتغيير إلى نوع بيانات التاريخ

لا تستخدم TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

لاختبار ما إذا كانت قيمة التعبير تنتهي إلى قيمة خالية. وإذا كانت كذلك، فسيقوم بتعيين القيمة المحددة إلى التعبير.

IFNULL(expr, value)

INDEXCOL

SELECT INDEXCOL(VALUEOF ("NQ_SESSION"."GEOGRAPHY_LEVEL"), Country, State, City), Revenue FROM Sales

تستخدم معلومات خارجية في إرجاع العمود الملائم حتى يراه المستخدم الذي سجل دخوله.

INDEXCOL([integer literal], [expr1] [, [expr2], ?-])

NULLIF

SELECT e.last_name؜ NULLIF(e.job_id؜ j.job_id) "Old Job ID" FROM employees e؜ job_history j WHERE e.employee_id = j.employee_id ORDER BY last_name؜ "Old Job ID"؛

مقارنة تعبيرين. فإن كانا متساويين، فسترجع الدالة قيمة خالية NULL. إن لم يكونا متساويين، فسترجع الدالة التعبير الأول. لا يمكن تحديد القيمة الحرفية الخالية NULL للتعبير الأول.

NULLIF([expression], [expression])

To_DateTime

SELECT To_DateTime ('2009-03-0301:01:00'؜ 'yyyy-mm-dd hh:mi:ss') FROM sales

يقوم بتحويل القيم الحرفية في سلسلة بصيغة الوقت/التاريخ إلى نوع بيانات الوقت/التاريخ.

To_DateTime([expression], [literal])

VALUEOF

SalesSubjectArea.Customer.Region = VALUEOF("Region Security"."REGION")

إشارة إلى قيمة متغير النموذج الدلالي في مرشح.

استخدم متغيرات expr كوسائط في دالة VALUEOF. إشارة إلى متغيرات النموذج الدلالي الثابت بالاسم.

VALUEOF(expr)

دوال استخراج البيانات

تقوم هذه الدوال بحساب قيم الطابع الزمني أو تقريبها لأقل فترة زمنية محددة، مثل الساعة واليوم والأسبوع والشهر وربع السنة.

يمكنك استخدام الطوابع الزمنية المحسوبة لتجميع البيانات باستخدام دقة مختلفة. على سبيل المثال، يمكنك تطبيق دالة EXTRACTDAY() على تواريخ أوامر المبيعات لحساب طابع زمني لمنتصف الليل في يوم الطلب، لتتمكن من تجميع البيانات حسب اليوم.

الدالة مثال الوصف الصياغة

استخراج اليوم

EXTRACTDAY("تاريخ الطلب")
  • 2/22/1967 3:02:01 ص تقوم بإرجاع النتيجة 2/22/1967 12:00:00 ص.
  • 9/2/2022 10:38:21 ص تقوم بإرجاع النتيجة 9/2/2022 12:00:00 ص.

إرجاع طابع زمني لمنتصف الليل (12 ص) في يوم قيمة الإدخال. على سبيل المثال، إذا كان الطابع الزمني للإدخال الساعة 3:02:01 ص في 22 فبراير، تقوم الدالة بإرجاع الطابع الزمني للساعة 12:00:00 ص في 22 فبراير.

EXTRACTDAY(expr)

استخراج الساعة

EXTRACTHOUR("تاريخ الطلب")
  • 2/22/1967 3:02:01 ص تقوم بإرجاع النتيجة 2/22/1967 3:00:00 ص.
  • 6/17/1999 11:18:30 م تقوم بإرجاع النتيجة 6/17/1999 11:00:00 م.

إرجاع طابع زمني لبداية ساعة قيمة الإدخال. على سبيل المثال، إذا كان الطابع الزمني للإدخال 11:18:30 م، تقوم الدالة بإرجاع الطابع الزمني 11:00:00 م.

EXTRACTHOUR (expr)

استخراج ساعة من اليوم

EXTRACTHOUROFDAY("تاريخ الطلب")
  • 2014/09/24 10:58:00 تقوم بإرجاع النتيجة 2000/01/01 10:00:00.
  • 2014/08/13 11:10:00 تقوم بإرجاع النتيجة 2000/01/01 11:00:00

إرجاع طابع زمني حيث الساعة تساوي ساعة قيمة الإدخال مع القيم الافتراضية للسنة والشهر واليوم والدقائق والثواني.

EXTRACTHOUROFDAY(expr)

استخراج المللي ثانية

EXTRACTMILLISECOND("تاريخ الطلب")
  • 1997/01/07 15:32:02.150 تقوم بإرجاع النتيجة 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 تقوم بإرجاع النتيجة 1997/01/07 18:42:01.265.
إرجاع الطابع الزمني الذي يحتوي على المللي ثانية لقيمة الإدخال. على سبيل المثال، إذا كان الطابع الزمني 15:32:02.150، تقوم الدالة بإرجاع الطابع الزمني 15:32:02.150.

EXTRACTMILLISECOND(expr)

استخراج الدقيقة

EXTRACTMINUTE("تاريخ الطلب")
  • 6/17/1999 11:18:00 م تقوم بإرجاع النتيجة 6/17/1999 11:18:00 م.
  • 9/2/2022 10:38:21 ص تقوم بإرجاع النتيجة 9/2/2022 10:38:00 ص.

إرجاع طابع زمني لبداية دقيقة قيمة الإدخال. على سبيل المثال، إذا كان الطابع الزمني للإدخال 11:38:21 ص، تقوم الدالة بإرجاع الطابع الزمني 11:38:00 ص.

EXTRACTMINUTE (تعبير)

استخراج الشهر

EXTRACTMONTH("تاريخ الطلب")
  • 2/22/1967 3:02:01 ص تقوم بإرجاع النتيجة 2/1/1967 12:00:00 ص.
  • 6/17/1999 11:18:00 م تقوم بإرجاع النتيجة 6/1/1999 12:00:00 ص.

إرجاع طابع زمني لأول يوم في شهر قيمة الإدخال. على سبيل المثال، إذا كان الطابع الزمني للإدخال في 22 فبراير، تقوم الدالة بإرجاع الطابع الزمني في 1 فبراير.

EXTRACTMONTH(expr)

استخراج ربع السنة

EXTRACTQUARTER("تاريخ الطلب")
  • 2/22/1967 3:02:01 ص تقوم بإرجاع النتيجة 1/1/1967 12:00:00 ص، اليوم الأول من ربع السنة المالي الأول.
  • 6/17/1999 11:18:00 م تقوم بإرجاع النتيجة 4/1/1999 12:00:00 ص، اليوم الأول من ربع السنة المالي الثاني.

  • 9/2/2022 10:38:21 ص تقوم بإرجاع النتيجة 7/1/2022 12:00:00 ص، اليوم الأول من ربع السنة المالي الثالث.

    نصيحة: استخدم QUARTER (expr) لحساب ربع السنة الترتيبي من الطابع الزمني الذي تم إرجاعه.

إرجاع طابع زمني لليوم الأول في ربع سنة قيمة الإدخال. على سبيل المثال، إذا كان الطابع الزمني للإدخال في ربع السنة المالي الثالث، تقوم الدالة بإرجاع الطابع الزمني 1 يوليو.

EXTRACTQUARTER(expr)

استخراج الثانية

EXTRACTSECOND("تاريخ الطلب")
  • 1997/01/07 15:32:02.150 تقوم بإرجاع النتيجة 1997/01/07 15:32:02.
  • 1997/01/07 20:44:18.163 تقوم بإرجاع النتيجة 1997/01/07 20:44:18.

إرجاع طابع زمني لقيمة الإدخال. على سبيل المثال، إذا كان الطابع الزمني 15:32:02.150، تقوم الدالة بإرجاع الطابع الزمني 15:32:02.

EXTRACTSECOND(expr)

استخراج الأسبوع

EXTRACTWEEK("تاريخ الطلب")
  • 2014/09/24 10:58:00 تقوم بإرجاع النتيجة 2014/09/21.

  • 2014/08/13 11:10:00 تقوم بإرجاع النتيجة 2014/08/10.

إرجاع تاريخ اليوم الأول من أسبوع (الأحد) قيمة الإدخال. على سبيل المثال، إذا كان الطابع الزمني يوم الأربعاء 24 سبتمبر، تقوم الدالة بإرجاع الطابع الزمني ليوم الأحد 21 سبتمبر.

ملاحظة: إذا كان اليوم الأول في الأسبوع (أي الأحد) يقع في سنة سابقة وسيؤثر بشكل سلبي على التجميع، فستقوم الوظيفة بإرجاع اليوم السابع في الأسبوع (أي السبت) في السنة الحالية بدلاً من اليوم الأول من الأسبوع في السنة السابقة. على سبيل المثال، يتم تجميع 1/1/24، و1/2/24، و1/3/24 كلها إلى السبت 1/6/24، بدلاً من الأحد 12/29/23.

EXTRACTWEEK(expr)

استخراج السنة

EXTRACTYEAR("تاريخ الطلب")
  • 1967/02/22 03:02:01 تقوم بإرجاع النتيجة 1967/01/01 00:00:00.
  • 1999/06/17 23:18:00 تقوم بإرجاع النتيجة 1999/01/01 00:00:00.

إرجاع طابع زمني ليوم 1 يناير لعام قيمة الإدخال. على سبيل المثال، إذا كان الطابع الزمني للإدخال 1967، تقوم الدالة بإرجاع الطابع الزمني 1 يناير 1967.

EXTRACTYEAR (تعبير)

نصائح حول استخدام أبعاد البيانات في مناطق الموضوعات

فيما يلي بعض النصائح حول الحصول على أفضل النتائج عند استخدام تواريخ منطقة الموضوع في العمليات الحسابية.

إضافة تاريخ منطقة موضوع إلى عملية حسابية

إذا سحبت تاريخًا من منطقة موضوع مباشرة إلى عملية حسابية وقمت بمعالجته كسلسلة أو عدد صحيح، فستحصل على خطأ. يحدث هذا لأن قيمة التاريخ الأساسية هي طابع زمني.

بدلاً من ذلك، استخدم واحدًا من دوال استخراج البيانات لتفسير التاريخ.

على سبيل المثال، قد يكون لديك تواريخ منطقة الموضوع هذه.
فيما يلي وصف GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png
.png

لاستخراج الشهور من تواريخ منطقة الموضوعات هذه، استخدم دالة ExtractMonthOfYear:

case when monthname(ExtractMonthOfYear("Date")) in ('Jan' ,'Feb', 'Mar') 
THEN 'Q1' 
ELSE 'Rest of the year' END

عرض الدوال

تعمل ميزة "عرض الدوال" على مجموعة نتائج استعلام.

الدالة مثال الوصف الصياغة

BottomN

BottomN(Sales, 10)

إرجاع عدد n أقل قيم ناتجة عن تعبير، مصنفة من الأدنى إلى الأعلى.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

حساب التعبير باستخدام مرشح التجميع المسبق المحدد.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

حساب المتوسط (الوسط) المتحرك لآخر عدد n من صفوف البيانات في مجموعة النتائج، شاملاً الصف الحالي.

MAVG([NumericExpression], [integer])

MSUM

SELECT Month, Revenue, MSUM(Revenue, 3) as 3_MO_SUM FROM Sales

حساب المجموع المتحرك لآخر عدد n من صفوف البيانات، شاملاً الصف الحالي.

يساوي مجموع الصف الأول التعبير الرقمي للصف الأول. يتم حساب مجموع الصف الثاني بأخذ مجموع أول صفي بيانات، وهكذا. وعند الوصول إلى الصف n ، يتم حساب المجموع وفقًا لآخر n صف تم بلوغه من صفوف البيانات.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

لتحديد تصنيف القيمة وفقًا لنطاق يحدده المستخدم. فهي ترجع أرقامًا صحيحة لتمثل أي نطاق من الرتب. يعرض المثال نطاقًا من 1 إلى 100، حيث أقل تخفيض = 1 وأعلى تخفيض = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

حساب المركز المئوي لكل قيمة تناسب وسيطة التعبير الرقمي. ويتراوح تصنيف المئين بين 0 (المنزلة الأولى بالمئين) و1 (المنزلة 100 بالمئين)، بشكل شامل.

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

لحساب التصنيف لكل قيمة تتناسب مع وسيطة التعبير الرقمي. يتم تعيين التصنيف 1 لأعلى رقم ويتم تعيين الأرقام الصحيحة المتتالية (2، 3، 4،...) لكل تصنيف لاحق. وفي حالة تساوي قيم معينة، فسوف يتم تعيين نفس التصنيف لها (على سبيل المثال، 1، 1، 1، 4، 5، 5، 7...).

RANK([NumericExpression])

RCOUNT

SELECT month, profit, RCOUNT(profit) FROM sales WHERE profit > 200

التعامل مع مجموعة من السجلات كمدخلات مع إحصاء عدد السجلات التي ظهرت حتى الآن.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

التعامل مع مجموعة من السجلات كمدخلات مع عرض أقصى قيمة استنادًا إلى السجلات التي ظهرت حتى الآن. ويجب أن يكون نوع البيانات المحدد واحدًا من الأنواع التي يمكن ترتيبها.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

التعامل مع مجموعة من السجلات كمدخلات مع عرض أدنى قيمة استنادًا إلى السجلات التي ظهرت حتى الآن. ويجب أن يكون نوع البيانات المحدد واحدًا من الأنواع التي يمكن ترتيبها.

RMIN([NumericExpression])

RSUM

SELECT month, revenue, RSUM(revenue) as RUNNING_SUM FROM sales

حساب المجموع التراكمي استنادًا إلى السجلات التي ظهرت حتى الآن.

يساوي مجموع الصف الأول التعبير الرقمي للصف الأول. يتم حساب مجموع الصف الثاني بأخذ مجموع أول صفي بيانات، وهكذا.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

إرجاع عدد n أعلى قيم ناتجة عن تعبير، مصنفة من الأعلى إلى الأدنى.

TOPN([NumericExpression], [integer])

نصائح حول استخدام وظائف العرض

  • FILTER - إذا كنت تقوم بإنشاء تقرير باستخدام منطقة موضوع، فاستخدم التدرجات المعرفة في منطقة الموضوع بدلاً من ترشيح أعمدة التدريج مباشرة في حساب. بعبارة أخرى، إذا كانت منطقة الموضوع تحتوي على تدرج للوقت\السنة المالية\ربع السنة المالي، فتجنب:

    filter (<measure> using fiscal_quarter = 'Q4')

    filter (<measure> using fiscal_quarter = 'Q3')

    filter (<measure> using fiscal_year = 'FY24')

دوال تقييم

دوال التقييم هي دوال قاعدة بيانات يمكن استخدامها في تمرير تعبيرات لإجراء عمليات حسابية متقدمة.

قد تتطلب دوال قاعدة البيانات المضمنة عمودًا أو أكثر. وتتم الإشارة إلى هذه الأعمدة بواسطة %1 ... %N ضمن الدالة. يجب عرض الأعمدة الفعلية بعد الدالة.

الدالة مثال الوصف الصياغة

EVALUATE

SELECT EVALUATE('instr(%1؜ %2)'؜ address؜ 'Foster City') FROM employees

تقوم هذه الدالة بتمرير دالة قاعدة البيانات المحددة في وجود أعمدة مرجعية اختيارية كمعلمات لقاعدة البيانات بغرض التقييم.

EVALUATE([string expression], [comma separated expressions])

EVALUATE_AGGR

EVALUATE_AGGR('REGR_SLOPE(%1؜ %2)'؜ sales.quantity؜ market.marketkey)

تقوم هذه الدالة بتمرير دالة قاعدة البيانات المحددة في وجود أعمدة مرجعية اختيارية كمعلمات لقاعدة البيانات بغرض التقييم. والغرض من هذه الدالة هو تجميع الدوال باستخدام عبارة GROUP BY.

EVALUATE_AGGR('db_agg_function(%1...%N)' [AS datatype] [, column1, columnN])

الدوال الرياضية

تختص الدوال الرياضية التي يتناولها هذا القسم بتنفيذ عمليات رياضية.

الدالة مثال الوصف الصياغة

ABS

ABS(Profit)

حساب القيمة المطلقة لتعبير رقمي.

expr أي تعبير تكون قيمته رقمية.

ABS(expr)

ACOS

ACOS(1)

حساب قوس جيب تمام الزاوية لتعبير رقمي.

expr أي تعبير تكون قيمته رقمية.

ACOS(expr)

ASIN

ASIN(1)

حساب قوس جيب الزاوية لتعبير رقمي.

expr أي تعبير تكون قيمته رقمية.

ASIN(expr)

ATAN

ATAN(1)

لحساب قوس ظل الزاوية لتعبير رقمي.

expr أي تعبير تكون قيمته رقمية.

ATAN(expr)

ATAN2

ATAN2(1؜ 2)

حساب ظل الزاوية العكسي لـ y /x، حيث y هي التعبير الرقمي الأول وx هي التعبير الرقمي الثاني.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

تقريب تعبير رقمي غير صحيح إلى أعلى عدد صحيح تالٍ. إذا كانت قيمة التعبير الرقمي عددًا صحيحًا، فإن الدالة CEILING تُرجع هذا العدد الصحيح.

CEILING(expr)

COS

COS(1)

حساب جيب تمام الزاوية لتعبير رقمي.

expr أي تعبير تكون قيمته رقمية.

COS(expr)

COT

COT(1)

حساب قاطع ظل الزاوية لتعبير رقمي.

expr أي تعبير تكون قيمته رقمية.

COT(expr)

DEGREES

DEGREES(1)

لتحويل تعبير من وحدات راديان لقياس الزاوية إلى درجات.

expr أي تعبير تكون قيمته رقمية.

DEGREES(expr)

EXP

EXP(4)

رفع القيمة إلى الأس المحدد. يحسب e المرفوع إلى الأس "ن"، حيث e هو الأساس الطبيعي للخوارزمية.

EXP(expr)

EXTRACTBIT

Int ExtractBit(1, 5)

استرجاع وحدة بت عند موضع معين في عدد صحيح. فهي تُرجع عددًا صحيحًا إما 0 أو 1 وفقًا لموضع وحدة البت.

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

تقريب تعبير رقمي غير صحيح إلى أدنى عدد صحيح تالٍ. إذا كانت قيمة التعبير الرقمي عددًا صحيحًا، فإن الدالة FLOOR تُرجع هذا العدد الصحيح.

FLOOR(expr)

LOG

LOG(1)

لحساب اللوغاريتم الطبيعي لتعبير.

expr أي تعبير تكون قيمته رقمية.

LOG(expr)

LOG10

LOG10(1)

لحساب الوغاريتم الأساسي 10 لتعبير.

expr أي تعبير تكون قيمته رقمية.

LOG10(expr)

MOD

MOD(10؜ 3)

قسمة التعبير الرقمي الأول على التعبير الرقمي الثاني وإرجاع الجزء المتبقي من ناتج القسمة.

MOD(expr1, expr2)

PI

PI()

حساب قيمة ثابت ط (pi).

PI()

POWER

POWER(Profit, 2)

أخذ التعبير الرقمي الأول ورفعه إلى الأس المحدد في التعبير الرقمي الثاني.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

لتحويل تعبير من درجات إلى وحدات راديان.

expr أي تعبير تكون قيمته رقمية.

RADIANS(expr)

RAND

RAND()

لإرجاع رقم عشوائي غير حقيقي بين 0 و1.

RAND()

RANDFromSeed

RAND(2)

لإرجاع رقم عشوائي غير حقيقي وفقًا لقيمة أساسية. ويتم إنشاء نفس مجموعة الأرقام العشوائية لقيمة أساسية محددة.

RAND(expr)

ROUND

ROUND(2.166000؜ 2)

تقريب تعبير رقمي إلى n من المنازل العشرية.

expr أي تعبير تكون قيمته رقمية.

العدد الصحيح هو أي عدد صحيح موجب يمثل عدد أرقام الدقة.

ROUND(expr, integer)

SIGN

SIGN(Profit)

يتم إرجاع ما يلي:

  • القيمة 1 إذا كان التعبير الرقمي عددًا موجبًا.

  • القيمة -1 إذا كان التعبير الرقمي عددًا سالبًا.

  • القيمة 0 إذا كان التعبير الرقمي صفرًا.

SIGN(expr)

SIN

SIN(1)

حساب جيب الزاوية لتعبير رقمي.

SIN(expr)

SQRT

SQRT(7)

حساب الجذر التربيعي لوسيطة التعبير الرقمي. يجب أن تكون قيمة التعبير الرقمي رقمًا غير سالب.

SQRT(expr)

TAN

TAN(1)

حساب ظل الزاوية لتعبير رقمي.

expr أي تعبير تكون قيمته رقمية.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345؜ 2)

لاختصار رقم عشري لإرجاع عدد معين من المنازل العشرية من الفاصلة العشرية.

expr أي تعبير تكون قيمته رقمية.

العدد الصحيح هو أي عدد صحيح موجب يمثل عدد الأحرف على يمين المنزل العشري الذي يتم إرجاعه.

TRUNCATE(expr, integer)

دوال التجميع التراكمي

تقوم دوال التجميع التراكمي بإجراء عمليات على قيم متعددة لتكوين نتائج ملخصة.

الدالة مثال الوصف الصياغة

MAVG

 

حساب المتوسط (الوسط) المتحرك لآخر عدد n من صفوف البيانات في مجموعة النتائج، شاملاً الصف الحالي.

expr أي تعبير تكون قيمته رقمية، وinteger هو أي عدد صحيح موجب. يمثل متوسط آخر n صف من صفوف البيانات.

MAVG(expr, integer)

MSUM

select month, revenue, MSUM(revenue, 3) as 3_MO_SUM from sales_subject_area

حساب المجموع المتحرك لآخر عدد n من صفوف البيانات، شاملاً الصف الحالي.

expr أي تعبير تكون قيمته رقمية، وinteger هو أي عدد صحيح موجب. يمثل مجموعة آخر عدد n من صفوف البيانات.

MSUM(expr, integer)

RSUM

SELECT month, revenue, RSUM(revenue) as RUNNING_SUM from sales_subject_area

حساب المجموع التراكمي استنادًا إلى السجلات التي ظهرت حتى الآن.

expr أي تعبير تكون قيمته رقمية.

RSUM(expr)

RCOUNT

select month, profit, RCOUNT(profit) from sales_subject_area where profit > 200

التعامل مع مجموعة من السجلات كمدخلات مع إحصاء عدد السجلات التي ظهرت حتى الآن.

expr تعبير لأي نوع بيانات.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

التعامل مع مجموعة من السجلات كمدخلات مع عرض أقصى قيمة استنادًا إلى السجلات التي ظهرت حتى الآن.

expr تعبير لأي نوع بيانات.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

التعامل مع مجموعة من السجلات كمدخلات مع عرض أدنى قيمة استنادًا إلى السجلات التي ظهرت حتى الآن.

expr تعبير لأي نوع بيانات.

RMIN(expr)

الدوال المساحية

تتيح لك الدوال المساحية إمكانية إجراء تحليل جغرافي عند نمذجة البيانات. على سبيل المثال، يمكنك حساب المسافة بين منطقتين جغرافيتين (معروفة باسم الأشكال أو المضلعات).

ملاحظة:

لا يمكن استخدام الدوال المساحية في العمليات الحسابية المخصصة بمصنفات التمثيل المرئي.
الدالة مثال الوصف الصياغة
GeometryArea

GeometryArea(Shape)

يحسب المنطقة التي يشغلها الشكل.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

يحسب المسافة بين شكلين.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

يحسب محيط الشكل.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

يحدد إذا ما كان أحد الأشكال بداخل شكل آخر. يرجع النتيجة TRUE أو FALSE كسلسلة (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

يحدد إذا ما كان شكلان على بعد مسافة محددة. يرجع النتيجة TRUE أو FALSE كسلسلة (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

دوال السلاسل

تنفذ دوال السلاسل العديد من عمليات المعالجة على الأحرف. وهي تعمل على سلاسل الأحرف.

الدالة مثال الوصف الصياغة

ASCII

ASCII("a")

لتحويل سلسلة أحرف مفردة إلى رمز ASCII المطابق، من 0 إلى 255. فإذا كان تقييم تعبير الأحرف ينتهي بأحرف متعددة، فيتم إرجاع رمز ASCII المطابق للحرف الأول في التعبير.

expr أي تعبير تكون قيمته سلسلة أحرف.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH("abcdef")

لعرض طول سلسلة معينة بوحدات البت. حيث يبلغ طول كل حرف يونيكود 2 بايت (أي ما يعادل 16 بت).

expr أي تعبير تكون قيمته سلسلة أحرف.

BIT_LENGTH(expr)

CHAR

CHAR(35)

تحويل قيمة رقمية تقع بين 0 و255 إلى قيمة حرفية متوافقة مع رمز ASCII.

expr أي تعبير تكون قيمته رقمية بين 0 و255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

لعرض طول سلسلة محددة بعدد الأحرف. ولا يتم حساب المسافات البادئة أو اللاحقة ضمن طول السلسلة.

expr أي تعبير تكون قيمته سلسلة أحرف.

CHAR_LENGTH(expr)

CONCAT

SELECT DISTINCT CONCAT ('abc', 'def') FROM employee

تركيب سلسلتي أحرف.

exprs أي تعبير تكون قيمته سلاسل أحرف، مفصولة بفواصل.

يجب عليك استخدام البيانات الأولية وليست البيانات المصاغة مع CONCAT.

CONCAT(expr1, expr2)

INSERT

SELECT INSERT('123456', 2, 3, 'abcd') FROM table

لإدراج سلسلة أحرف محددة في موقع محدد بسلسلة أحرف أخرى.

expr1 أي تعبير تكون قيمته سلسلة أحرف. حيث يقوم بتحديد سلسلة الأحرف الهدف.

integer1 أي عدد صحيح موجب يمثل عدد الأحرف من بداية السلسلة الهدف حيث موضع إدراج السلسلة الثانية.

integer2 أي عدد صحيح موجب يمثل عدد الأحرف في السلسلة الهدف المطلوب استبدالها بالسلسلة الثانية.

expr2 أي تعبير تكون قيمته سلسلة أحرف. حيث يقوم بتحديد سلسلة الأحرف المطلوب إدراجها في السلسلة الهدف.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

لعرض عدد محدد من الأحرف من يسار السلسلة.

expr أي تعبير تكون قيمته سلسلة أحرف

integer هو أي عدد صحيح يمثل عدد الأحرف من يسار السلسلة المطلوب إرجاعها.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

لعرض طول سلسلة محددة بعدد الأحرف. حيث يتم إرجاع الطول بدون أي أحرف فارغة لاحقة.

expr أي تعبير تكون قيمته سلسلة أحرف.

LENGTH(expr)

LOCATE

LOCATE("d" "abcdef")

إرجاع الموضع الرقمي لسلسلة أحرف في سلسلة أحرف أخرى. وفي حالة عدم العثور على سلسلة الأحرف في السلسلة التي يتم البحث بها، فإن الدالة ترجع القيمة 0.

expr1 أي تعبير تكون قيمته سلسلة أحرف. حيث يقوم بتحديد السلسلة المطلوب البحث عنها.

expr2 أي تعبير تكون قيمته سلسلة أحرف.

حيث يقوم بتحديد السلسلة المطلوب البحث عنها.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

على غرار LOCATE، فهي تُرجع الموضع الرقمي لسلسلة أحرف في سلسلة أحرف أخرى. تشتمل LOCATEN على وسيطة عدد صحيح لتتيح لك تحديد موضع البداية لبدء البحث.

expr1 أي تعبير تكون قيمته سلسلة أحرف. حيث يقوم بتحديد السلسلة المطلوب البحث عنها.

expr2 أي تعبير تكون قيمته سلسلة أحرف. حيث يقوم بتحديد السلسلة المطلوب البحث عنها.

integer هو أي عدد صحيح موجب (بخلاف الصفر) يمثل موضع البداية لبدء البحث عن سلسلة الأحرف.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

لتحويل سلسلة أحرف إلى حالة الأحرف الصغيرة.

expr أي تعبير تكون قيمته سلسلة أحرف.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH("abcdef")

إرجاع عدد وحدات البايت لسلسلة محددة.

expr أي تعبير تكون قيمته سلسلة أحرف.

OCTET_LENGTH(expr)

POSITION

POSITION("d"، "abcdef")

إرجاع الموضع الرقمي لـ strExpr1 في تعبير حرفي. وفي حالة عدم العثور على strExpr1، فإن الدالة ترجع القيمة 0.

expr1 أي تعبير تكون قيمته سلسلة أحرف. حيث يقوم بتحديد السلسلة المطلوب البحث عنها في السلسلة الهدف. على سبيل المثال، "d".

expr2 أي تعبير تكون قيمته سلسلة أحرف. حيث يقوم بتحديد السلسلة الهدف المطلوب البحث فيها. على سبيل المثال، "abcdef".

POSITION(expr1, expr2)

REPEAT

REPEAT("abc"، 4)

تكرار تعبير محدد لعدد n من المرات.

expr أي تعبير تكون قيمته سلسلة أحرف

integer هو أي عدد صحيح موجب يمثل عدد مرات تكرار سلسلة الأحرف.

REPEAT(expr, integer)

REPLACE

REPLACE("abcd1234"، "123"، "zz")

لاستبدال حرف واحد أو أكثر من سلسلة أحرف محددة بحرف واحد أو أكثر آخر.

expr1 أي تعبير تكون قيمته سلسلة أحرف. وهي السلسلة المطلوب استبدال الأحرف فيها.

expr2 أي تعبير تكون قيمته سلسلة أحرف. وتقوم هذه السلسلة الثانية بتحديد الأحرف من السلسلة الأولى المطلوب استبدالها.

expr3 أي تعبير تكون قيمته سلسلة أحرف. وتقوم هذه السلسلة الثالثة بتحديد الأحرف المطلوب استبدالها في السلسلة الأولى.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

لعرض عدد محدد من الأحرف من يمين السلسلة.

expr أي تعبير تكون قيمته سلسلة أحرف.

integer هو أي عدد صحيح يمثل عدد الأحرف من يمين السلسلة المطلوب إرجاعها.

RIGHT(expr, integer)

SPACE

SPACE(2)

إدراج مسافات.

integer هو أي عدد صحيح يشير إلى عدد المسافات المطلوب إدراجها.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

لتكوين سلسلة جديدة تبدأ من عدد ثابت من الأحرف في السلسلة الأصلية.

expr أي تعبير تكون قيمته سلسلة أحرف.

startPos هو أي عدد صحيح موجب يمثل عدد الأحرف من بداية الجانب الأيسر من السلسلة حيث تبدأ النتيجة.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

مثل دالة SUBSTRING، تقوم بتكوين سلسلة جديدة تبدأ من عدد ثابت من الأحرف في السلسلة الأصلية.

تشتمل SUBSTRINGN على وسيطة عدد صحيح لتتيح لك تحديد طول السلسلة الجديدة بعدد الأحرف.

expr أي تعبير تكون قيمته سلسلة أحرف.

startPos هو أي عدد صحيح موجب يمثل عدد الأحرف من بداية الجانب الأيسر من السلسلة حيث تبدأ النتيجة.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

لإزالة الأحرف البادئة واللاحقة من سلسلة أحرف.

char هو أي حرف مفرد. وفي حالة إزالة هذا التحديد (وعلامات الاقتباس المفردة المطلوبة)، يتم استخدام حرف فارغ بشكل افتراضي.

expr أي تعبير تكون قيمته سلسلة أحرف.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

لإزالة الأحرف البادئة من سلسلة أحرف.

char هو أي حرف مفرد. وفي حالة إزالة هذا التحديد (وعلامات الاقتباس المفردة المطلوبة)، يتم استخدام حرف فارغ بشكل افتراضي.

expr أي تعبير تكون قيمته سلسلة أحرف.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

لإزالة الأحرف اللاحقة من سلسلة أحرف.

char هو أي حرف مفرد. وفي حالة إزالة هذا التحديد (وعلامات الاقتباس المفردة المطلوبة)، يتم استخدام حرف فارغ بشكل افتراضي.

expr أي تعبير تكون قيمته سلسلة أحرف.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

لتحويل سلسلة أحرف إلى حالة الأحرف الكبيرة.

expr أي تعبير تكون قيمته سلسلة أحرف.

UPPER(expr)

نصائح حول استخدام دوال السلاسل

فيما يلي بعض النصائح حول الحصول على أفضل النتائج عند استخدام دوال السلاسل في مصنفاتك.

تسلسل قيم متعددة:

استخدم LISTAGG لتسلسل قيم متعددة في خلية واحدة وصف واحد.

listagg(<column to concatenate> by <grouping column>)

إضافة on overflow truncate إذا كانت السلسلة الناتجة طويلة للغاية، وإضافة distinct إذا لم تكن القيم فريدة.

على سبيل المثال:

listagg(distinct City_ID by STATE on overflow truncate)

دوال النظام

تُرجع دالة النظام USER قيمًا مرتبطة بالجلسة. على سبيل المثال، اسم المستخدم الذي تم تسجيل الدخول به.

الدالة مثال الوصف الصياغة

DATABASE

 

إرجاع اسم منطقة الموضوع الذي سجلت الدخول إليه.

DATABASE()

USER

 

إرجاع اسم المستخدم في النموذج الدلالي الذي قمت بالدخول إليه.

USER()

دوال المتوالية الزمنية

تمكنك وظائف السلاسل الزمنية من تجميع البيانات والتنبؤ بها بناءً على الأبعاد الزمنية. على سبيل المثال، يمكنك استخدام الدالة AGO لحساب الإيرادات منذ عام واحد ماضٍ.

يجب أن يكون أعضاء البُعد الزمني في مستوى الدالة أو دونه. ولهذا السبب، يجب وضع تصور لعمود واحد أو أكثر من الأعمدة التي تحدد بشكل فريد الأعضاء عند المستوى المحدد أو أسفله في الاستعلام.

الدالة مثال الوصف الصياغة

AGO

SELECT Year_ID, AGO(sales, year, 1)

احتساب القيمة المجمعة لقياس في فترة زمنية محددة في الماضي. على سبيل المثال، لحساب الإيرادات الشهرية قبل عام واحد، استخدم AGO(Revenue, Year, 1, SHIP_MONTH). لحساب الإيرادات ربع السنوية في الربع الأخير، استخدم AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

حيث:

  • يمثل MEASURE قياس الحساب، على سبيل المثال، الإيرادات.
  • يمثل TIME_LEVEL الفاصل الزمني الذي يجب أن يكون سنة أو ربع سنة أو شهرًا أو أسبوعًا أو يومًا.
  • يمثل OFFSET عدد الفترات الزمنية الفاصلة المطلوب حسابها مرة أخرى، على سبيل المثال، 1 لسنة واحدة.

PERIODROLLING

SELECT Month_ID, PERIODROLLING (monthly_sales, -1, 1)

تقوم هذه الدالة بحساب تجميع مقياس على مدار فترة تبدأ من x وحدة زمنية وتنتهي بعد y وحدة زمنية من الوقت الحالي. على سبيل المثال، يمكن استخدام PERIODROLLING في حساب المبيعات لفترة تبدأ من ربع سنة سابق وتنتهي بعد ربع سنة لاحق لربع السنة الحالي.

PERIODROLLING(measure, x [,y])

حيث:

  • يمثل MEASURE اسم عمود القياس.
  • X هو عدد صحيح يمثل مقدار الإزاحة عن الوقت الحالي.
  • Y هو عدد صحيح يمثل عدد الوحدات الزمنية التي يتم حساب الدوال عبرها.
  • HIERARCHY عبارة عن وسيطة اختيارية يمثل اسم التدرج في البُعد الزمني، مثل YR، MON، DAY، الذي ترغب في استخدامه لحساب الفترة الزمنية.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

لحساب القيمة المجمعة لقياس من بداية فترة زمنية إلى آخر فترة زمنية، على سبيل المثال، العمليات الحسابية من سنة لتاريخه.

على سبيل المثال، لحساب مبيعات سنة حتى تاريخه، استخدم TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

حيث:

  • يمثل MEASURE تعبيرًا يشير إلى عمود مقاييس واحد على الأقل، على سبيل المثال، المبيعات.
  • يمثل TIME_LEVEL الفاصل الزمني الذي يجب أن يكون سنة أو ربع سنة أو شهرًا أو أسبوعًا أو يومًا.