38 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | d734a8e46d |
46 | کار با ارریس |
توابع برای کار با ارریس
خالی
بازده 1 برای یک مجموعه خالی, یا 0 برای یک مجموعه غیر خالی. نتیجه این نوع uint8. این تابع نیز برای رشته کار می کند.
notEmpty
بازده 0 برای یک مجموعه خالی, یا 1 برای یک مجموعه غیر خالی. نتیجه این نوع uint8. این تابع نیز برای رشته کار می کند.
طول
بازگرداندن تعداد اقلام در مجموعه. نتیجه این نوع uint64. این تابع نیز برای رشته کار می کند.
emptyArrayUInt8, emptyArrayUInt16, emptyArrayUInt32, emptyArrayUInt64
emptyArrayInt8, emptyArrayInt16, emptyArrayInt32, emptyArrayInt64
emptyArrayFloat32, emptyArrayFloat64
emptyArrayDate, emptyArrayDateTime
تخت خواب
قبول صفر استدلال و مجموعه ای خالی از نوع مناسب را برمی گرداند.
خالی
یک مجموعه خالی را می پذیرد و یک مجموعه یک عنصر را که برابر با مقدار پیش فرض است باز می گرداند.
محدوده( پایان), دامنه (شروع, پایان [, گام])
بازگرداندن مجموعه ای از اعداد از ابتدا تا انتها-1 به گام.
اگر استدلال start
مشخص نشده است, به طور پیش فرض به 0.
اگر استدلال step
مشخص نشده است, به طور پیش فرض به 1.
این رفتار تقریبا مانند پیتون range
. اما تفاوت این است که همه نوع استدلال باید باشد UInt
اعداد.
فقط در مورد, یک استثنا پرتاب می شود اگر ارریس با طول کل بیش از 100,000,000 عناصر در یک بلوک داده ها ایجاد.
array(x1, …), operator [x1, …]
ایجاد مجموعه ای از استدلال تابع. استدلال باید ثابت باشد و انواع که کوچکترین نوع رایج. حداقل یک استدلال باید تصویب شود, چرا که در غیر این صورت مشخص نیست که چه نوع از مجموعه ای برای ایجاد. به این معنا که شما نمی توانید از این تابع برای ایجاد یک مجموعه خالی استفاده کنید (برای انجام این کار از ‘emptyArray*’ تابع در بالا توضیح داده شد). بازگشت یک ‘Array(T)’ نوع نتیجه, جایی که ‘T’ کوچکترین نوع رایج از استدلال گذشت.
موافقم
ترکیبی از ارریس به عنوان استدلال گذشت.
arrayConcat(arrays)
پارامترها
arrays
– Arbitrary number of arguments of & حذف نوع. مثال
SELECT arrayConcat([1, 2], [3, 4], [5, 6]) AS res
┌─res───────────┐
│ [1,2,3,4,5,6] │
└───────────────┘
هشدار داده می شود]
عنصر را با شاخص دریافت کنید n
از مجموعه arr
. n
باید هر نوع عدد صحیح باشد.
شاخص ها در مجموعه ای از یک شروع می شوند.
شاخص های منفی پشتیبانی می شوند. در این مورد آن را انتخاب می کند که عنصر مربوطه شماره از پایان. به عنوان مثال, arr[-1]
اخرین وسیله ست
اگر شاخص می افتد در خارج از مرزهای مجموعه, این گرداند برخی از مقدار پیش فرض (0 برای اعداد, یک رشته خالی برای رشته, و غیره.), به جز برای مورد با یک مجموعه غیر ثابت و یک شاخص ثابت 0 (در این مورد وجود خواهد داشت یک خطا Array indices are 1-based
).
است (ورود, علم)
بررسی اینکه ‘arr’ اری ‘elem’ عنصر. بازده 0 اگر عنصر در مجموعه نیست, یا 1 اگر.
NULL
به عنوان یک ارزش پردازش شده است.
SELECT has([1, 2, NULL], NULL)
┌─has([1, 2, NULL], NULL)─┐
│ 1 │
└─────────────────────────┘
حصال
بررسی اینکه یک مجموعه زیر مجموعه دیگری باشد.
hasAll(set, subset)
پارامترها
set
– Array of any type with a set of elements.subset
– Array of any type with elements that should be tested to be a subset ofset
.
مقادیر بازگشتی
1
اگرset
شامل تمام عناصر ازsubset
.0
وگرنه
خواص عجیب و غریب
- مجموعه خالی زیر مجموعه ای از هر است.
Null
پردازش به عنوان یک ارزش.- منظور از ارزش ها در هر دو ارریس مهم نیست.
مثالها
SELECT hasAll([], [])
بازده 1.
SELECT hasAll([1, Null], [Null])
بازده 1.
SELECT hasAll([1.0, 2, 3, 4], [1, 3])
بازده 1.
SELECT hasAll(['a', 'b'], ['a'])
بازده 1.
SELECT hasAll([1], ['a'])
بازده 0.
SELECT hasAll([[1, 2], [3, 4]], [[1, 2], [3, 5]])
بازده 0.
hasAny
بررسی اینکه دو بند چهار راه توسط برخی از عناصر.
hasAny(array1, array2)
پارامترها
array1
– Array of any type with a set of elements.array2
– Array of any type with a set of elements.
بازگشت ارزش
1
اگرarray1
وarray2
حداقل یک عنصر مشابه داشته باشید.0
وگرنه
خواص عجیب و غریب
Null
پردازش به عنوان یک ارزش.- منظور از ارزش ها در هر دو ارریس مهم نیست.
مثالها
SELECT hasAny([1], [])
بازگشت 0
.
SELECT hasAny([Null], [Null, 1])
بازگشت 1
.
SELECT hasAny([-128, 1., 512], [1])
بازگشت 1
.
SELECT hasAny([[1, 2], [3, 4]], ['a', 'c'])
بازگشت 0
.
SELECT hasAll([[1, 2], [3, 4]], [[1, 2], [1, 2]])
بازگشت 1
.
هشدار داده می شود)
بازگرداندن شاخص از اولین ‘x’ عنصر (با شروع از 1) اگر در مجموعه ای است, یا 0 اگر نیست.
مثال:
SELECT indexOf([1, 3, NULL, NULL], NULL)
┌─indexOf([1, 3, NULL, NULL], NULL)─┐
│ 3 │
└───────────────────────────────────┘
عناصر را به NULL
به عنوان مقادیر طبیعی انجام می شود.
هشدار داده می شود)
بازده تعداد عناصر موجود در آرایه برابر با x. معادل arraycount (elem -> elem = x arr).
NULL
عناصر به عنوان مقادیر جداگانه به کار گرفته.
مثال:
SELECT countEqual([1, 2, NULL, NULL], NULL)
┌─countEqual([1, 2, NULL, NULL], NULL)─┐
│ 2 │
└──────────────────────────────────────┘
هشدار داده می شود)
Returns the array [1, 2, 3, …, length (arr) ]
این تابع به طور معمول با مجموعه ای استفاده می شود. این اجازه می دهد شمارش چیزی فقط یک بار برای هر مجموعه پس از استفاده از مجموعه پیوستن. مثال:
SELECT
count() AS Reaches,
countIf(num = 1) AS Hits
FROM test.hits
ARRAY JOIN
GoalsReached,
arrayEnumerate(GoalsReached) AS num
WHERE CounterID = 160656
LIMIT 10
┌─Reaches─┬──Hits─┐
│ 95606 │ 31406 │
└─────────┴───────┘
در این مثال, می رسد تعداد تبدیل است (رشته دریافت پس از استفاده از مجموعه ملحق), و بازدید تعداد بازدید صفحات (رشته قبل از مجموعه ملحق). در این مورد خاص شما می توانید همان نتیجه را در یک راه ساده تر:
SELECT
sum(length(GoalsReached)) AS Reaches,
count() AS Hits
FROM test.hits
WHERE (CounterID = 160656) AND notEmpty(GoalsReached)
┌─Reaches─┬──Hits─┐
│ 95606 │ 31406 │
└─────────┴───────┘
این تابع همچنین می توانید در توابع مرتبه بالاتر استفاده می شود. برای مثال می توانید از شاخص های مجموعه ای برای عناصری که با شرایط مطابقت دارند استفاده کنید.
arrayEnumerateUniq(arr, …)
بازگرداندن مجموعه ای به همان اندازه به عنوان مجموعه منبع, نشان می دهد برای هر عنصر چه موقعیت خود را در میان عناصر با همان مقدار. به عنوان مثال: ارریینومراتونیک([10, 20, 10, 30]) = [1, 1, 2, 1].
این تابع در هنگام استفاده از مجموعه ای پیوستن و تجمع عناصر مجموعه ای مفید است. مثال:
SELECT
Goals.ID AS GoalID,
sum(Sign) AS Reaches,
sumIf(Sign, num = 1) AS Visits
FROM test.visits
ARRAY JOIN
Goals,
arrayEnumerateUniq(Goals.ID) AS num
WHERE CounterID = 160656
GROUP BY GoalID
ORDER BY Reaches DESC
LIMIT 10
┌──GoalID─┬─Reaches─┬─Visits─┐
│ 53225 │ 3214 │ 1097 │
│ 2825062 │ 3188 │ 1097 │
│ 56600 │ 2803 │ 488 │
│ 1989037 │ 2401 │ 365 │
│ 2830064 │ 2396 │ 910 │
│ 1113562 │ 2372 │ 373 │
│ 3270895 │ 2262 │ 812 │
│ 1084657 │ 2262 │ 345 │
│ 56599 │ 2260 │ 799 │
│ 3271094 │ 2256 │ 812 │
└─────────┴─────────┴────────┘
در این مثال هر هدف شناسه محاسبه تعداد تبدیل (هر عنصر در اهداف تو در تو ساختار داده ها یک هدف است که رسیده بود که ما اشاره به عنوان یک تبدیل) و تعداد جلسات. بدون مجموعه ملحق, ما می خواهیم تعداد جلسات به عنوان مجموع شمارش (امضا کردن). اما در این مورد خاص ردیف شد ضرب در تو در تو در اهداف و ساختار آن در سفارش به تعداد هر جلسه یک بار بعد از این ما اعمال یک شرط به ارزش arrayenumerateuniq(اهداف است.id) تابع.
تابع ارریینومراتونیک می تواند چندین بار از همان اندازه به عنوان استدلال استفاده کند. در این مورد, منحصر به فرد است برای تاپل از عناصر در موقعیت های مشابه در تمام ارریس در نظر گرفته.
SELECT arrayEnumerateUniq([1, 1, 1, 2, 2, 2], [1, 1, 2, 1, 1, 2]) AS res
┌─res───────────┐
│ [1,2,1,1,2,1] │
└───────────────┘
این در هنگام استفاده از مجموعه با یک ساختار داده های تو در تو و تجمع بیشتر در سراسر عناصر متعدد در این ساختار ملحق لازم است.
عقبگرد
حذف مورد گذشته از مجموعه.
arrayPopBack(array)
پارامترها
array
– Array.
مثال
SELECT arrayPopBack([1, 2, 3]) AS res
┌─res───┐
│ [1,2] │
└───────┘
ساحل
اولین مورد را از مجموعه حذف می کند.
arrayPopFront(array)
پارامترها
array
– Array.
مثال
SELECT arrayPopFront([1, 2, 3]) AS res
┌─res───┐
│ [2,3] │
└───────┘
عقب نشینی
یک مورد را به انتهای مجموعه اضافه می کند.
arrayPushBack(array, single_value)
پارامترها
array
– Array.single_value
– A single value. Only numbers can be added to an array with numbers, and only strings can be added to an array of strings. When adding numbers, ClickHouse automatically sets thesingle_value
نوع داده مجموعه را تایپ کنید. برای کسب اطلاعات بیشتر در مورد انواع داده ها در خانه کلیک کنید “انواع داده ها”. می توانNULL
. تابع می افزاید:NULL
عنصر به مجموعه ای, و نوع عناصر مجموعه ای تبدیل بهNullable
.
مثال
SELECT arrayPushBack(['a'], 'b') AS res
┌─res───────┐
│ ['a','b'] │
└───────────┘
ساحلی
یک عنصر را به ابتدای مجموعه اضافه می کند.
arrayPushFront(array, single_value)
پارامترها
array
– Array.single_value
– A single value. Only numbers can be added to an array with numbers, and only strings can be added to an array of strings. When adding numbers, ClickHouse automatically sets thesingle_value
نوع داده مجموعه را تایپ کنید. برای کسب اطلاعات بیشتر در مورد انواع داده ها در خانه کلیک کنید “انواع داده ها”. می تواند باشدNULL
. این تابع می افزاید:NULL
عنصر به مجموعه ای, و نوع عناصر مجموعه ای تبدیل بهNullable
.
مثال
SELECT arrayPushFront(['b'], 'a') AS res
┌─res───────┐
│ ['a','b'] │
└───────────┘
نمایش سایت
طول مجموعه را تغییر می دهد.
arrayResize(array, size[, extender])
پارامترها:
array
— Array.size
— Required length of the array.- اگر
size
کمتر از اندازه اصلی مجموعه است, مجموعه ای از سمت راست کوتاه.
- اگر
- اگر
size
مجموعه بزرگتر از اندازه اولیه مجموعه است که به سمت راست گسترش می یابدextender
مقادیر یا مقادیر پیش فرض برای نوع داده از موارد مجموعه. extender
— Value for extending an array. Can beNULL
.
مقدار بازگشتی:
مجموعه ای از طول size
.
نمونه هایی از تماس
SELECT arrayResize([1], 3)
┌─arrayResize([1], 3)─┐
│ [1,0,0] │
└─────────────────────┘
SELECT arrayResize([1], 3, NULL)
┌─arrayResize([1], 3, NULL)─┐
│ [1,NULL,NULL] │
└───────────────────────────┘
arraySlice
یک تکه از مجموعه را برمی گرداند.
arraySlice(array, offset[, length])
پارامترها
array
– Array of data.offset
– Indent from the edge of the array. A positive value indicates an offset on the left, and a negative value is an indent on the right. Numbering of the array items begins with 1.length
- طول قطعه مورد نیاز . اگر شما یک مقدار منفی مشخص, تابع یک تکه باز می گرداند[offset, array_length - length)
. اگر شما حذف ارزش, تابع برش می گرداند[offset, the_end_of_array]
.
مثال
SELECT arraySlice([1, 2, NULL, 4, 5], 2, 3) AS res
┌─res────────┐
│ [2,NULL,4] │
└────────────┘
عناصر مجموعه ای به NULL
به عنوان مقادیر طبیعی انجام می شود.
arraySort([func,] arr, …)
عناصر را مرتب می کند arr
صف در صعودی. اگر func
تابع مشخص شده است, مرتب سازی سفارش توسط نتیجه تعیین func
تابع اعمال شده به عناصر مجموعه. اگر func
قبول استدلال های متعدد arraySort
تابع به تصویب می رسد چند بند که استدلال func
خواهد به مطابقت. نمونه های دقیق در پایان نشان داده شده است arraySort
توصیف.
نمونه ای از مقادیر صحیح مرتب سازی:
SELECT arraySort([1, 3, 3, 0]);
┌─arraySort([1, 3, 3, 0])─┐
│ [0,1,3,3] │
└─────────────────────────┘
نمونه ای از مقادیر رشته مرتب سازی:
SELECT arraySort(['hello', 'world', '!']);
┌─arraySort(['hello', 'world', '!'])─┐
│ ['!','hello','world'] │
└────────────────────────────────────┘
ترتیب مرتب سازی زیر را برای NULL
, NaN
و Inf
مقادیر:
SELECT arraySort([1, nan, 2, NULL, 3, nan, -4, NULL, inf, -inf]);
┌─arraySort([1, nan, 2, NULL, 3, nan, -4, NULL, inf, -inf])─┐
│ [-inf,-4,1,2,3,inf,nan,nan,NULL,NULL] │
└───────────────────────────────────────────────────────────┘
-Inf
مقادیر برای اولین بار در مجموعه هستند.NULL
ارزشهای خبری عبارتند از:NaN
مقادیر درست قبل هستندNULL
.Inf
مقادیر درست قبل هستندNaN
.
توجه داشته باشید که arraySort
یک عملکرد عالی مرتبه. شما می توانید یک تابع لامبدا را به عنوان اولین استدلال منتقل کنید. در این مورد مرتب سازی سفارش تعیین می شود در نتیجه از lambda تابع اعمال شده به عناصر آرایه است.
بیایید مثال زیر را در نظر بگیریم:
SELECT arraySort((x) -> -x, [1, 2, 3]) as res;
┌─res─────┐
│ [3,2,1] │
└─────────┘
For each element of the source array, the lambda function returns the sorting key, that is, [1 –> -1, 2 –> -2, 3 –> -3]. Since the arraySort
تابع انواع کلید به ترتیب صعودی, نتیجه این است [3, 2, 1]. بنابراین (x) –> -x
عملکرد لامبدا مجموعه ترتیب نزولی در یک مرتب سازی.
تابع لامبدا می تواند استدلال های متعدد را قبول کند. در این مورد, شما نیاز به تصویب arraySort
تابع چند بند از طول یکسان است که استدلال تابع لامبدا به مطابقت. مجموعه حاصل از عناصر از اولین مجموعه ورودی تشکیل شده است. به عنوان مثال:
SELECT arraySort((x, y) -> y, ['hello', 'world'], [2, 1]) as res;
┌─res────────────────┐
│ ['world', 'hello'] │
└────────────────────┘
در اینجا عناصر موجود در مجموعه دوم ([2, 1]) تعریف یک کلید مرتب سازی برای عنصر مربوطه از مجموعه منبع ([‘hello’, ‘world’]), به این معنا که, [‘hello’ –> 2, ‘world’ –> 1]. Since the lambda function doesn't use x
مقادیر واقعی مجموعه منبع بر نظم در نتیجه تاثیر نمی گذارد. پس, ‘hello’ خواهد بود که عنصر دوم در نتیجه, و ‘world’ خواهد بود که برای اولین بار.
نمونه های دیگر در زیر نشان داده شده.
SELECT arraySort((x, y) -> y, [0, 1, 2], ['c', 'b', 'a']) as res;
┌─res─────┐
│ [2,1,0] │
└─────────┘
SELECT arraySort((x, y) -> -y, [0, 1, 2], [1, 2, 3]) as res;
┌─res─────┐
│ [2,1,0] │
└─────────┘
!!! note "یادداشت" برای بهبود کارایی مرتب سازی تبدیل شوارتز استفاده شده است.
arrayReverseSort([func,] arr, …)
عناصر را مرتب می کند arr
صف در نزولی. اگر func
تابع مشخص شده است, arr
بر اساس نتیجه طبقه بندی شده اند func
عملکرد به عناصر مجموعه اعمال می شود و سپس مجموعه مرتب شده معکوس می شود. اگر func
قبول استدلال های متعدد arrayReverseSort
تابع به تصویب می رسد چند بند که استدلال func
خواهد به مطابقت. نمونه های دقیق در پایان نشان داده شده است arrayReverseSort
توصیف.
نمونه ای از مقادیر صحیح مرتب سازی:
SELECT arrayReverseSort([1, 3, 3, 0]);
┌─arrayReverseSort([1, 3, 3, 0])─┐
│ [3,3,1,0] │
└────────────────────────────────┘
نمونه ای از مقادیر رشته مرتب سازی:
SELECT arrayReverseSort(['hello', 'world', '!']);
┌─arrayReverseSort(['hello', 'world', '!'])─┐
│ ['world','hello','!'] │
└───────────────────────────────────────────┘
ترتیب مرتب سازی زیر را برای NULL
, NaN
و Inf
مقادیر:
SELECT arrayReverseSort([1, nan, 2, NULL, 3, nan, -4, NULL, inf, -inf]) as res;
┌─res───────────────────────────────────┐
│ [inf,3,2,1,-4,-inf,nan,nan,NULL,NULL] │
└───────────────────────────────────────┘
Inf
مقادیر برای اولین بار در مجموعه هستند.NULL
ارزشهای خبری عبارتند از:NaN
مقادیر درست قبل هستندNULL
.-Inf
مقادیر درست قبل هستندNaN
.
توجه داشته باشید که arrayReverseSort
یک عملکرد عالی مرتبه. شما می توانید یک تابع لامبدا را به عنوان اولین استدلال منتقل کنید. مثال زیر نشان داده شده.
SELECT arrayReverseSort((x) -> -x, [1, 2, 3]) as res;
┌─res─────┐
│ [1,2,3] │
└─────────┘
این مجموعه به روش زیر مرتب شده است:
- ابتدا مجموعه منبع ([1, 2, 3]) با توجه به نتیجه تابع لامبدا اعمال شده به عناصر مجموعه طبقه بندی شده اند. نتیجه یک مجموعه است [3, 2, 1].
- مجموعه ای است که در مرحله قبل به دست, معکوس شده است. بنابراین, نتیجه نهایی است [1, 2, 3].
تابع لامبدا می تواند استدلال های متعدد را قبول کند. در این مورد, شما نیاز به تصویب arrayReverseSort
تابع چند بند از طول یکسان است که استدلال تابع لامبدا به مطابقت. مجموعه حاصل از عناصر از اولین مجموعه ورودی تشکیل شده است. به عنوان مثال:
SELECT arrayReverseSort((x, y) -> y, ['hello', 'world'], [2, 1]) as res;
┌─res───────────────┐
│ ['hello','world'] │
└───────────────────┘
در این مثال مجموعه به روش زیر مرتب شده است:
- در ابتدا مجموعه منبع ([‘hello’, ‘world’]) با توجه به نتیجه تابع لامبدا اعمال شده به عناصر از ارریس طبقه بندی شده اند. عناصر که در مجموعه دوم به تصویب رسید ([2, 1]), تعریف کلید مرتب سازی برای عناصر مربوطه را از مجموعه منبع. نتیجه یک مجموعه است [‘world’, ‘hello’].
- مجموعه ای که در مرحله قبل طبقه بندی شده اند, معکوس شده است. بنابراین نتیجه نهایی این است [‘hello’, ‘world’].
نمونه های دیگر در زیر نشان داده شده.
SELECT arrayReverseSort((x, y) -> y, [4, 3, 5], ['a', 'b', 'c']) AS res;
┌─res─────┐
│ [5,3,4] │
└─────────┘
SELECT arrayReverseSort((x, y) -> -y, [4, 3, 5], [1, 2, 3]) AS res;
┌─res─────┐
│ [4,3,5] │
└─────────┘
arrayUniq(arr, …)
اگر یک استدلال به تصویب می رسد, تعداد عناصر مختلف در مجموعه شمارش. اگر استدلال های متعدد به تصویب می رسد, شمارش تعداد تاپل های مختلف از عناصر در موقعیت های مربوطه در مجموعه های متعدد.
اگر شما می خواهید برای دریافت یک لیست از اقلام منحصر به فرد در مجموعه, شما می توانید از ارری راهاهن استفاده(‘groupUniqArray’, arr).
هشدار داده می شود)
یک تابع خاص. بخش را ببینید “ArrayJoin function”.
کلیدواژه
محاسبه تفاوت بین عناصر مجموعه مجاور. بازگرداندن مجموعه ای که عنصر اول خواهد بود 0, دوم تفاوت بین است a[1] - a[0]
, etc. The type of elements in the resulting array is determined by the type inference rules for subtraction (e.g. UInt8
- UInt8
= Int16
).
نحو
arrayDifference(array)
پارامترها
array
– & حذف.
مقادیر بازگشتی
بازگرداندن مجموعه ای از تفاوت بین عناصر مجاور.
مثال
پرسوجو:
SELECT arrayDifference([1, 2, 3, 4])
نتیجه:
┌─arrayDifference([1, 2, 3, 4])─┐
│ [0,1,1,1] │
└───────────────────────────────┘
مثال سرریز به علت نوع نتیجه اینترن64:
پرسوجو:
SELECT arrayDifference([0, 10000000000000000000])
نتیجه:
┌─arrayDifference([0, 10000000000000000000])─┐
│ [0,-8446744073709551616] │
└────────────────────────────────────────────┘
حوزه ارریددیست
مجموعه ای را می گیرد و تنها شامل عناصر مجزا می شود.
نحو
arrayDistinct(array)
پارامترها
array
– & حذف.
مقادیر بازگشتی
بازگرداندن مجموعه ای حاوی عناصر متمایز.
مثال
پرسوجو:
SELECT arrayDistinct([1, 2, 2, 3, 1])
نتیجه:
┌─arrayDistinct([1, 2, 2, 3, 1])─┐
│ [1,2,3] │
└────────────────────────────────┘
هشدار داده می شود)
بازگرداندن مجموعه ای از همان اندازه به عنوان مجموعه منبع, نشان می دهد که هر عنصر برای اولین بار در مجموعه منبع به نظر می رسد.
مثال:
SELECT arrayEnumerateDense([10, 20, 10, 30])
┌─arrayEnumerateDense([10, 20, 10, 30])─┐
│ [1,2,1,3] │
└───────────────────────────────────────┘
هشدار داده می شود)
طول می کشد مجموعه ای با عناصر که در تمام مجموعه منبع در حال حاضر می گرداند. عناصر سفارش در مجموعه حاصل همان است که در مجموعه اول است.
مثال:
SELECT
arrayIntersect([1, 2], [1, 3], [2, 3]) AS no_intersect,
arrayIntersect([1, 2], [1, 3], [1, 4]) AS intersect
┌─no_intersect─┬─intersect─┐
│ [] │ [1] │
└──────────────┴───────────┘
نمایش سایت
یک تابع کلی برای عناصر مجموعه ای اعمال می شود و نتیجه خود را باز می گرداند. نام تابع تجمع به عنوان یک رشته در نقل قول های تک منتقل می شود 'max'
, 'sum'
. هنگام استفاده از توابع دانه پارامتری پارامتر پس از نام تابع در پرانتز نشان داده شده است 'uniqUpTo(6)'
.
نحو
arrayReduce(agg_func, arr1, arr2, ..., arrN)
پارامترها
agg_func
— The name of an aggregate function which should be a constant رشته.arr
— Any number of & حذف نوع ستون به عنوان پارامترهای تابع تجمع.
مقدار بازگشتی
مثال
SELECT arrayReduce('max', [1, 2, 3])
┌─arrayReduce('max', [1, 2, 3])─┐
│ 3 │
└───────────────────────────────┘
اگر یک تابع جمع استدلال های متعدد طول می کشد, سپس این تابع باید به مجموعه های متعدد از همان اندازه اعمال.
SELECT arrayReduce('maxIf', [3, 5], [1, 0])
┌─arrayReduce('maxIf', [3, 5], [1, 0])─┐
│ 3 │
└──────────────────────────────────────┘
به عنوان مثال با یک تابع جمع پارامتری:
SELECT arrayReduce('uniqUpTo(3)', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
┌─arrayReduce('uniqUpTo(3)', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])─┐
│ 4 │
└─────────────────────────────────────────────────────────────┘
تغییرات
یک تابع کلی برای عناصر مجموعه ای در محدوده های داده شده اعمال می شود و مجموعه ای حاوی نتیجه مربوط به هر محدوده را باز می گرداند. تابع همان نتیجه به عنوان چند بازگشت arrayReduce(agg_func, arraySlice(arr1, index, length), ...)
.
نحو
arrayReduceInRanges(agg_func, ranges, arr1, arr2, ..., arrN)
پارامترها
agg_func
— The name of an aggregate function which should be a constant رشته.ranges
— The ranges to aggretate which should be an & حذف از توپلس که شامل شاخص و طول هر محدوده.arr
— Any number of & حذف نوع ستون به عنوان پارامترهای تابع تجمع.
مقدار بازگشتی
مثال
SELECT arrayReduceInRanges(
'sum',
[(1, 5), (2, 3), (3, 4), (4, 4)],
[1000000, 200000, 30000, 4000, 500, 60, 7]
) AS res
┌─res─────────────────────────┐
│ [1234500,234000,34560,4567] │
└─────────────────────────────┘
هشدار داده می شود)
بازگرداندن مجموعه ای از همان اندازه به عنوان مجموعه اصلی حاوی عناصر در جهت معکوس.
مثال:
SELECT arrayReverse([1, 2, 3])
┌─arrayReverse([1, 2, 3])─┐
│ [3,2,1] │
└─────────────────────────┘
معکوس)
مترادف برای “arrayReverse”
ارریفلاتتن
مجموعه ای از ارریس ها را به یک مجموعه صاف تبدیل می کند.
تابع:
- امر به هر عمق مجموعه های تو در تو.
- طعم هایی را که در حال حاضر مسطح هستند تغییر نمی دهد.
مجموعه مسطح شامل تمام عناصر از تمام منابع است.
نحو
flatten(array_of_arrays)
نام مستعار: flatten
.
پارامترها
array_of_arrays
— & حذف ارریس به عنوان مثال,[[1,2,3], [4,5]]
.
مثالها
SELECT flatten([[[1]], [[2], [3]]])
┌─flatten(array(array([1]), array([2], [3])))─┐
│ [1,2,3] │
└─────────────────────────────────────────────┘
اررایکمپکت
عناصر تکراری متوالی را از یک مجموعه حذف می کند. ترتیب مقادیر نتیجه به ترتیب در مجموعه منبع تعیین می شود.
نحو
arrayCompact(arr)
پارامترها
arr
— The & حذف برای بازرسی.
مقدار بازگشتی
مجموعه ای بدون تکراری.
نوع: Array
.
مثال
پرسوجو:
SELECT arrayCompact([1, 1, nan, nan, 2, 3, 3, 3])
نتیجه:
┌─arrayCompact([1, 1, nan, nan, 2, 3, 3, 3])─┐
│ [1,nan,nan,2,3] │
└────────────────────────────────────────────┘
ارریزیپ
Combine multiple Array type columns into one Array[Tuple(…)] column
نحو
arrayZip(arr1, arr2, ..., arrN)
پارامترها
arr
— Any number of & حذف ستون نوع به ترکیب.
مقدار بازگشتی
The result of Array[Tuple(…)] type after the combination of these arrays
مثال
پرسوجو:
SELECT arrayZip(['a', 'b', 'c'], ['d', 'e', 'f']);
نتیجه:
┌─arrayZip(['a', 'b', 'c'], ['d', 'e', 'f'])─┐
│ [('a','d'),('b','e'),('c','f')] │
└────────────────────────────────────────────┘
ارریایکو
محاسبه حراج (منطقه تحت منحنی, که یک مفهوم در یادگیری ماشین است, مشاهده اطلاعات بیشتر: https://en.wikipedia.org/wiki/receiver_operating_characteristic#area_under_the_curve).
نحو
arrayAUC(arr_scores, arr_labels)
پارامترها
arr_scores
— scores prediction model gives.arr_labels
— labels of samples, usually 1 for positive sample and 0 for negtive sample.
مقدار بازگشتی را برمی گرداند ارزش حراج با نوع شناور64.
مثال پرسوجو:
select arrayAUC([0.1, 0.4, 0.35, 0.8], [0, 0, 1, 1])
نتیجه:
┌─arrayAUC([0.1, 0.4, 0.35, 0.8], [0, 0, 1, 1])─┐
│ 0.75 │
└────────────────────────────────────────---──┘