81 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
36 | مرجع |
مرجع عملکرد کامل
شمارش
شمارش تعداد ردیف یا نه تهی ارزش.
ClickHouse زیر پشتیبانی می کند syntaxes برای count
:
count(expr)
یاCOUNT(DISTINCT expr)
.count()
یاCOUNT(*)
. اینcount()
نحو تاتر خاص است.
پارامترها
این تابع می تواند:
- صفر پارامتر.
- یک عبارت.
مقدار بازگشتی
- اگر تابع بدون پارامتر نامیده می شود تعداد ردیف شمارش.
- اگر عبارت به تصویب می رسد, سپس تابع شمارش چند بار این عبارت بازگشت تهی نیست. اگر بیان می گرداند Nullable- نوع ارزش و سپس نتیجه
count
باقی نمی ماندNullable
. تابع بازده 0 اگر بیان بازگشتNULL
برای تمام ردیف.
در هر دو مورد نوع مقدار بازگشتی است UInt64.
اطلاعات دقیق
تاتر از COUNT(DISTINCT ...)
نحو. رفتار این ساخت و ساز بستگی به ا_فزونهها تنظیمات. این تعریف می کند که کدام یک از دانشگاه* توابع برای انجام عملیات استفاده می شود. به طور پیش فرض است قرارداد اتحادیه تابع.
این SELECT count() FROM table
پرس و جو بهینه سازی شده نیست, چرا که تعداد ورودی در جدول به طور جداگانه ذخیره نمی. این ستون کوچک را از جدول انتخاب می کند و تعداد مقادیر موجود را شمارش می کند.
مثالها
مثال 1:
SELECT count() FROM t
┌─count()─┐
│ 5 │
└─────────┘
مثال 2:
SELECT name, value FROM system.settings WHERE name = 'count_distinct_implementation'
┌─name──────────────────────────┬─value─────┐
│ count_distinct_implementation │ uniqExact │
└───────────────────────────────┴───────────┘
SELECT count(DISTINCT num) FROM t
┌─uniqExact(num)─┐
│ 3 │
└────────────────┘
این مثال نشان می دهد که count(DISTINCT num)
توسط uniqExact
عملکرد با توجه به count_distinct_implementation
مقدار تنظیم.
هر)
انتخاب اولین مقدار مواجه می شوند. پرس و جو را می توان در هر سفارش و حتی در جهت های مختلف در هر زمان اجرا, بنابراین نتیجه این تابع نامشخص است. برای دریافت یک نتیجه معین, شما می توانید با استفاده از ‘min’ یا ‘max’ تابع به جای ‘any’.
در بعضی موارد, شما می توانید در جهت اعدام تکیه. این امر در مورد مواردی که انتخاب می شود از یک زیرخاکی است که از سفارش استفاده می کند.
هنگامی که یک SELECT
پرسوجو دارد GROUP BY
بند و یا حداقل یک مجموع عملکرد ClickHouse (در مقایسه با MySQL) مستلزم آن است که تمام عبارات در SELECT
, HAVING
و ORDER BY
بند از کلید و یا از توابع کل محاسبه می شود. به عبارت دیگر, هر ستون انتخاب شده از جدول باید یا در کلید و یا در داخل توابع دانه استفاده می شود. برای دریافت رفتار مانند خروجی زیر, شما می توانید ستون های دیگر در قرار any
تابع جمع.
هشدار داده می شود)
انتخاب یک مقدار اغلب اتفاق می افتد با استفاده از بزرگان سنگین الگوریتم. در صورتی که یک مقدار که بیش از در نیمی از موارد در هر یک از موضوعات اعدام پرس و جو رخ می دهد وجود دارد, این مقدار بازگشته است. به طور معمول نتیجه nondeterministic.
anyHeavy(column)
نشانوندها
column
– The column name.
مثال
نگاهی به به موقع مجموعه داده ها و انتخاب هر مقدار اغلب اتفاق می افتد در AirlineID
ستون.
SELECT anyHeavy(AirlineID) AS res
FROM ontime
┌───res─┐
│ 19690 │
└───────┘
حداقل صفحه نمایش:)
ارزش گذشته مواجه می شوند را انتخاب می کند.
نتیجه این است که فقط به عنوان نامشخص به عنوان برای any
تابع.
گروه بیتاند
اعمال بیتی AND
برای مجموعه ای از اعداد.
groupBitAnd(expr)
پارامترها
expr
– An expression that results in UInt*
نوع.
مقدار بازگشتی
ارزش UInt*
نوع.
مثال
داده های تست:
binary decimal
00101100 = 44
00011100 = 28
00001101 = 13
01010101 = 85
پرسوجو:
SELECT groupBitAnd(num) FROM t
کجا num
ستون با داده های تست است.
نتیجه:
binary decimal
00000100 = 4
ویرایشگر گروه
اعمال بیتی OR
برای مجموعه ای از اعداد.
groupBitOr(expr)
پارامترها
expr
– An expression that results in UInt*
نوع.
مقدار بازگشتی
ارزش UInt*
نوع.
مثال
داده های تست:
binary decimal
00101100 = 44
00011100 = 28
00001101 = 13
01010101 = 85
پرسوجو:
SELECT groupBitOr(num) FROM t
کجا num
ستون با داده های تست است.
نتیجه:
binary decimal
01111101 = 125
گروهبیتکسور
اعمال بیتی XOR
برای مجموعه ای از اعداد.
groupBitXor(expr)
پارامترها
expr
– An expression that results in UInt*
نوع.
مقدار بازگشتی
ارزش UInt*
نوع.
مثال
داده های تست:
binary decimal
00101100 = 44
00011100 = 28
00001101 = 13
01010101 = 85
پرسوجو:
SELECT groupBitXor(num) FROM t
کجا num
ستون با داده های تست است.
نتیجه:
binary decimal
01101000 = 104
نگاشت گروهی
بیت مپ و یا کل محاسبات از یک unsigned integer ستون بازگشت cardinality از نوع UInt64 اگر اضافه کردن پسوند -دولت بازگشت شی نگاشت بیت.
groupBitmap(expr)
پارامترها
expr
– An expression that results in UInt*
نوع.
مقدار بازگشتی
ارزش UInt64
نوع.
مثال
داده های تست:
UserID
1
1
2
3
پرسوجو:
SELECT groupBitmap(UserID) as num FROM t
نتیجه:
num
3
کمینه)
محاسبه حداقل.
بیشینه)
محاسبه حداکثر.
هشدار داده می شود)
محاسبه ‘arg’ ارزش برای حداقل ‘val’ ارزش. اگر چندین مقدار مختلف وجود دارد ‘arg’ برای مقادیر حداقل ‘val’ اولین بار از این مقادیر مواجه خروجی است.
مثال:
┌─user─────┬─salary─┐
│ director │ 5000 │
│ manager │ 3000 │
│ worker │ 1000 │
└──────────┴────────┘
SELECT argMin(user, salary) FROM salary
┌─argMin(user, salary)─┐
│ worker │
└──────────────────────┘
هشدار داده می شود)
محاسبه ‘arg’ مقدار برای حداکثر ‘val’ ارزش. اگر چندین مقدار مختلف وجود دارد ‘arg’ برای حداکثر مقادیر ‘val’ اولین بار از این مقادیر مواجه خروجی است.
جمع)
محاسبه مجموع. فقط برای اعداد کار می کند.
ورود به سیستم)
محاسبه مجموع اعداد, با استفاده از همان نوع داده برای نتیجه به عنوان پارامترهای ورودی. اگر مجموع بیش از حداکثر مقدار برای این نوع داده, تابع یک خطا می گرداند.
فقط برای اعداد کار می کند.
sumMap(key, value), sumMap(تاپل(key, value))
مجموع ‘value’ تنظیم با توجه به کلید های مشخص شده در ‘key’ صف کردن. عبور تاپل از کلید ها و ارزش های عرریس مترادف به عبور از دو مجموعه از کلید ها و ارزش است. تعداد عناصر در ‘key’ و ‘value’ باید همین کار را برای هر سطر است که بالغ بر شود. Returns a tuple of two arrays: keys in sorted order, and values summed for the corresponding keys.
مثال:
CREATE TABLE sum_map(
date Date,
timeslot DateTime,
statusMap Nested(
status UInt16,
requests UInt64
),
statusMapTuple Tuple(Array(Int32), Array(Int32))
) ENGINE = Log;
INSERT INTO sum_map VALUES
('2000-01-01', '2000-01-01 00:00:00', [1, 2, 3], [10, 10, 10], ([1, 2, 3], [10, 10, 10])),
('2000-01-01', '2000-01-01 00:00:00', [3, 4, 5], [10, 10, 10], ([3, 4, 5], [10, 10, 10])),
('2000-01-01', '2000-01-01 00:01:00', [4, 5, 6], [10, 10, 10], ([4, 5, 6], [10, 10, 10])),
('2000-01-01', '2000-01-01 00:01:00', [6, 7, 8], [10, 10, 10], ([6, 7, 8], [10, 10, 10]));
SELECT
timeslot,
sumMap(statusMap.status, statusMap.requests),
sumMap(statusMapTuple)
FROM sum_map
GROUP BY timeslot
┌────────────timeslot─┬─sumMap(statusMap.status, statusMap.requests)─┬─sumMap(statusMapTuple)─────────┐
│ 2000-01-01 00:00:00 │ ([1,2,3,4,5],[10,10,20,10,10]) │ ([1,2,3,4,5],[10,10,20,10,10]) │
│ 2000-01-01 00:01:00 │ ([4,5,6,7,8],[10,10,20,10,10]) │ ([4,5,6,7,8],[10,10,20,10,10]) │
└─────────────────────┴──────────────────────────────────────────────┴────────────────────────────────┘
سیخ کباب
محاسبه skewness از یک توالی.
skewPop(expr)
پارامترها
expr
— عبارت بازگشت یک عدد.
مقدار بازگشتی
The skewness of the given distribution. Type — جسم شناور64
مثال
SELECT skewPop(value) FROM series_with_value_column
سیخ
محاسبه نمونه skewness از یک توالی.
این نشان دهنده یک تخمین بی طرفانه از اریب یک متغیر تصادفی اگر ارزش گذشت نمونه خود را تشکیل می دهند.
skewSamp(expr)
پارامترها
expr
— عبارت بازگشت یک عدد.
مقدار بازگشتی
The skewness of the given distribution. Type — جسم شناور64. اگر n <= 1
(n
اندازه نمونه است), سپس بازده تابع nan
.
مثال
SELECT skewSamp(value) FROM series_with_value_column
کورتپ
محاسبه kurtosis از یک توالی.
kurtPop(expr)
پارامترها
expr
— عبارت بازگشت یک عدد.
مقدار بازگشتی
The kurtosis of the given distribution. Type — جسم شناور64
مثال
SELECT kurtPop(value) FROM series_with_value_column
کردها
محاسبه نمونه kurtosis از یک توالی.
این نشان دهنده یک تخمین بی طرفانه از کورتوز یک متغیر تصادفی اگر ارزش گذشت نمونه خود را تشکیل می دهند.
kurtSamp(expr)
پارامترها
expr
— عبارت بازگشت یک عدد.
مقدار بازگشتی
The kurtosis of the given distribution. Type — جسم شناور64. اگر n <= 1
(n
اندازه نمونه است) و سپس تابع بازده nan
.
مثال
SELECT kurtSamp(value) FROM series_with_value_column
هشدار داده می شود)
timeSeriesGroupSum
می توانید سری های زمانی مختلف که برچسب زمان نمونه هم ترازی جمع نمی.
این برون یابی خطی بین دو برچسب زمان نمونه و سپس مجموع زمان سری با هم استفاده کنید.
uid
سری زمان شناسه منحصر به فرد است,UInt64
.timestamp
است نوع درون64 به منظور حمایت میلی ثانیه یا میکروثانیه.value
متریک است.
تابع گرداند مجموعه ای از تاپل با (timestamp, aggregated_value)
جفت
قبل از استفاده از این تابع اطمینان حاصل کنید timestamp
به ترتیب صعودی است.
مثال:
┌─uid─┬─timestamp─┬─value─┐
│ 1 │ 2 │ 0.2 │
│ 1 │ 7 │ 0.7 │
│ 1 │ 12 │ 1.2 │
│ 1 │ 17 │ 1.7 │
│ 1 │ 25 │ 2.5 │
│ 2 │ 3 │ 0.6 │
│ 2 │ 8 │ 1.6 │
│ 2 │ 12 │ 2.4 │
│ 2 │ 18 │ 3.6 │
│ 2 │ 24 │ 4.8 │
└─────┴───────────┴───────┘
CREATE TABLE time_series(
uid UInt64,
timestamp Int64,
value Float64
) ENGINE = Memory;
INSERT INTO time_series VALUES
(1,2,0.2),(1,7,0.7),(1,12,1.2),(1,17,1.7),(1,25,2.5),
(2,3,0.6),(2,8,1.6),(2,12,2.4),(2,18,3.6),(2,24,4.8);
SELECT timeSeriesGroupSum(uid, timestamp, value)
FROM (
SELECT * FROM time_series order by timestamp ASC
);
و نتیجه خواهد بود:
[(2,0.2),(3,0.9),(7,2.1),(8,2.4),(12,3.6),(17,5.1),(18,5.4),(24,7.2),(25,2.5)]
هشدار داده می شود)
به طور مشابه به timeSeriesGroupSum
, timeSeriesGroupRateSum
محاسبه نرخ زمان سری و سپس مجموع نرخ با هم.
همچنین, برچسب زمان باید در جهت صعود قبل از استفاده از این تابع باشد.
استفاده از این تابع به داده ها از timeSeriesGroupSum
مثال, شما نتیجه زیر را دریافت کنید:
[(2,0),(3,0.1),(7,0.3),(8,0.3),(12,0.3),(17,0.3),(18,0.3),(24,0.3),(25,0.1)]
میانگین)
محاسبه متوسط. فقط برای اعداد کار می کند. نتیجه این است که همیشه شناور64.
کشتی کج
محاسبه میانگین ریاضی وزنی.
نحو
avgWeighted(x, weight)
پارامترها
x
— Values. عدد صحیح یا شناور نقطه.weight
— Weights of the values. عدد صحیح یا شناور نقطه.
نوع x
و weight
باید مثل قبل باشه
مقدار بازگشتی
- وزن متوسط.
NaN
. اگر تمام وزن به برابر هستند 0.
نوع: جسم شناور64.
مثال
پرسوجو:
SELECT avgWeighted(x, w)
FROM values('x Int8, w Int8', (4, 1), (1, 0), (10, 2))
نتیجه:
┌─avgWeighted(x, weight)─┐
│ 8 │
└────────────────────────┘
دانشگاه
محاسبه تعداد تقریبی مقادیر مختلف استدلال.
uniq(x[, ...])
پارامترها
تابع طول می کشد تعداد متغیر از پارامترهای. پارامترها می توانند باشند Tuple
, Array
, Date
, DateTime
, String
, یا انواع عددی.
مقدار بازگشتی
- A UInt64- نوع شماره .
پیاده سازی اطلاعات
تابع:
-
هش را برای تمام پارامترها در مجموع محاسبه می کند و سپس در محاسبات استفاده می شود.
-
با استفاده از یک الگوریتم نمونه تطبیقی. برای محاسبه دولت تابع با استفاده از یک نمونه از عناصر هش ارزش تا 65536.
This algorithm is very accurate and very efficient on the CPU. When the query contains several of these functions, using `uniq` is almost as fast as using other aggregate functions.
-
نتیجه را تعیین می کند (به سفارش پردازش پرس و جو بستگی ندارد).
ما توصیه می کنیم با استفاده از این تابع تقریبا در تمام حالات.
همچنین نگاه کنید به
مخلوط نشده
محاسبه تعداد تقریبی مقادیر استدلال های مختلف.
uniqCombined(HLL_precision)(x[, ...])
این uniqCombined
تابع یک انتخاب خوب برای محاسبه تعداد مقادیر مختلف است.
پارامترها
تابع طول می کشد تعداد متغیر از پارامترهای. پارامترها می توانند باشند Tuple
, Array
, Date
, DateTime
, String
, یا انواع عددی.
HLL_precision
پایه 2 لگاریتم تعداد سلول ها در است جمع شدن. اختیاری, شما می توانید تابع به عنوان استفاده uniqCombined(x[, ...])
. مقدار پیش فرض برای HLL_precision
است 17, که به طور موثر 96 کیلوبایت فضا (2^17 سلول ها, 6 بیت در هر).
مقدار بازگشتی
- یک عدد UInt64- نوع شماره .
پیاده سازی اطلاعات
تابع:
-
محاسبه هش (هش 64 بیتی برای
String
و در غیر این صورت 32 بیتی) برای تمام پارامترها در مجموع و سپس در محاسبات استفاده می شود. -
با استفاده از ترکیبی از سه الگوریتم: مجموعه, جدول هش, و جمع شدن با جدول تصحیح خطا.
For a small number of distinct elements, an array is used. When the set size is larger, a hash table is used. For a larger number of elements, HyperLogLog is used, which will occupy a fixed amount of memory.
-
نتیجه را تعیین می کند (به سفارش پردازش پرس و جو بستگی ندارد).
!!! note "یادداشت"
از هش 32 بیتی برای غیر استفاده می کند-String
نوع, نتیجه خطا بسیار بالا برای کاریت به طور قابل توجهی بزرگتر از اند UINT_MAX
(خطا به سرعت پس از چند ده میلیارد ارزش متمایز افزایش خواهد یافت), از این رو در این مورد شما باید استفاده کنید نیم قرن 64
در مقایسه با دانشگاه عملکرد uniqCombined
:
- مصرف چندین بار حافظه کمتر.
- محاسبه با دقت چند بار بالاتر است.
- معمولا عملکرد کمی پایین تر است. در برخی از حالات,
uniqCombined
می توانید بهتر از انجامuniq
برای مثال با توزیع نمایش داده شد که انتقال تعداد زیادی از جمع متحده بر روی شبکه.
همچنین نگاه کنید به
نیم قرن 64
مثل مخلوط نشده, اما با استفاده از هش 64 بیتی برای تمام انواع داده ها.
یونقلل12
محاسبه تعداد تقریبی مقادیر استدلال های مختلف, با استفاده از جمع شدن الگوریتم.
uniqHLL12(x[, ...])
پارامترها
تابع طول می کشد تعداد متغیر از پارامترهای. پارامترها می توانند باشند Tuple
, Array
, Date
, DateTime
, String
, یا انواع عددی.
مقدار بازگشتی
- A UInt64- نوع شماره .
پیاده سازی اطلاعات
تابع:
-
هش را برای تمام پارامترها در مجموع محاسبه می کند و سپس در محاسبات استفاده می شود.
-
با استفاده از الگوریتم جمع شدن تقریبی تعداد مقادیر استدلال های مختلف.
212 5-bit cells are used. The size of the state is slightly more than 2.5 KB. The result is not very accurate (up to ~10% error) for small data sets (<10K elements). However, the result is fairly accurate for high-cardinality data sets (10K-100M), with a maximum error of ~1.6%. Starting from 100M, the estimation error increases, and the function will return very inaccurate results for data sets with extremely high cardinality (1B+ elements).
-
نتیجه تعیین شده را فراهم می کند (به سفارش پردازش پرس و جو بستگی ندارد).
ما توصیه نمی کنیم با استفاده از این تابع. در اغلب موارد از دانشگاه یا مخلوط نشده تابع.
همچنین نگاه کنید به
قرارداد اتحادیه
محاسبه تعداد دقیق ارزش استدلال های مختلف.
uniqExact(x[, ...])
استفاده از uniqExact
تابع اگر شما کاملا نیاز به یک نتیجه دقیق. در غیر این صورت استفاده از دانشگاه تابع.
این uniqExact
تابع با استفاده از حافظه بیش از uniq
, چرا که اندازه دولت رشد گشوده است به عنوان تعدادی از ارزش های مختلف را افزایش می دهد.
پارامترها
تابع طول می کشد تعداد متغیر از پارامترهای. پارامترها می توانند باشند Tuple
, Array
, Date
, DateTime
, String
, یا انواع عددی.
همچنین نگاه کنید به
groupArray(x) groupArray(max_size)(x)
مجموعه ای از مقادیر استدلال را ایجاد می کند. مقادیر را می توان به ترتیب در هر (نامعین) اضافه کرد.
نسخه دوم (با max_size
پارامتر) اندازه مجموعه حاصل را محدود می کند max_size
عناصر.
به عنوان مثال, groupArray (1) (x)
معادل است [any (x)]
.
در بعضی موارد, شما هنوز هم می توانید در جهت اعدام تکیه. این امر در مورد مواردی که SELECT
همراه از یک خرده فروشی که با استفاده از ORDER BY
.
هشدار داده می شود
مقدار را به مجموعه ای در موقعیت مشخص شده وارد می کند.
نحو
groupArrayInsertAt(default_x, size)(x, pos);
اگر در یک پرس و جو چند مقدار به همان موقعیت قرار داده, تابع رفتار در روش های زیر:
- اگر پرس و جو در یک موضوع اجرا, یکی از اولین از مقادیر درج شده استفاده شده است.
- اگر یک پرس و جو در موضوعات مختلف اجرا, ارزش حاصل یکی نامشخص از مقادیر درج شده است.
پارامترها
x
— Value to be inserted. عبارت در نتیجه یکی از انواع داده های پشتیبانی شده.pos
— Position at which the specified elementx
قرار داده می شود. شماره شاخص در مجموعه از صفر شروع می شود. UInt32.default_x
— Default value for substituting in empty positions. Optional parameter. عبارت در نتیجه نوع داده پیکربندی شده برایx
پارامتر. اگرdefault_x
تعریف نشده است مقادیر پیشفرض استفاده می شود.size
— Length of the resulting array. Optional parameter. When using this parameter, the default valuedefault_x
باید مشخص شود. UInt32.
مقدار بازگشتی
- مجموعه ای با مقادیر درج شده.
نوع: & حذف.
مثال
پرسوجو:
SELECT groupArrayInsertAt(toString(number), number * 2) FROM numbers(5);
نتیجه:
┌─groupArrayInsertAt(toString(number), multiply(number, 2))─┐
│ ['0','','1','','2','','3','','4'] │
└───────────────────────────────────────────────────────────┘
پرسوجو:
SELECT groupArrayInsertAt('-')(toString(number), number * 2) FROM numbers(5);
نتیجه:
┌─groupArrayInsertAt('-')(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2','-','3','-','4'] │
└────────────────────────────────────────────────────────────────┘
پرسوجو:
SELECT groupArrayInsertAt('-', 5)(toString(number), number * 2) FROM numbers(5);
نتیجه:
┌─groupArrayInsertAt('-', 5)(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2'] │
└───────────────────────────────────────────────────────────────────┘
درج چند رشته ای از عناصر را به یک موقعیت.
پرسوجو:
SELECT groupArrayInsertAt(number, 0) FROM numbers_mt(10) SETTINGS max_block_size = 1;
به عنوان یک نتیجه از این پرس و جو شما عدد صحیح تصادفی در [0,9]
محدوده. به عنوان مثال:
┌─groupArrayInsertAt(number, 0)─┐
│ [7] │
└───────────────────────────────┘
هشدار داده می شود
محاسبه مجموع در حال حرکت از ارزش های ورودی.
groupArrayMovingSum(numbers_for_summing)
groupArrayMovingSum(window_size)(numbers_for_summing)
این تابع می تواند اندازه پنجره به عنوان یک پارامتر را. اگر سمت چپ نامشخص, تابع طول می کشد اندازه پنجره به تعداد ردیف در ستون برابر.
پارامترها
numbers_for_summing
— عبارت در نتیجه یک مقدار نوع داده عددی.window_size
— Size of the calculation window.
مقادیر بازگشتی
- مجموعه ای از همان اندازه و نوع به عنوان داده های ورودی.
مثال
جدول نمونه:
CREATE TABLE t
(
`int` UInt8,
`float` Float32,
`dec` Decimal32(2)
)
ENGINE = TinyLog
┌─int─┬─float─┬──dec─┐
│ 1 │ 1.1 │ 1.10 │
│ 2 │ 2.2 │ 2.20 │
│ 4 │ 4.4 │ 4.40 │
│ 7 │ 7.77 │ 7.77 │
└─────┴───────┴──────┘
نمایش داده شد:
SELECT
groupArrayMovingSum(int) AS I,
groupArrayMovingSum(float) AS F,
groupArrayMovingSum(dec) AS D
FROM t
┌─I──────────┬─F───────────────────────────────┬─D──────────────────────┐
│ [1,3,7,14] │ [1.1,3.3000002,7.7000003,15.47] │ [1.10,3.30,7.70,15.47] │
└────────────┴─────────────────────────────────┴────────────────────────┘
SELECT
groupArrayMovingSum(2)(int) AS I,
groupArrayMovingSum(2)(float) AS F,
groupArrayMovingSum(2)(dec) AS D
FROM t
┌─I──────────┬─F───────────────────────────────┬─D──────────────────────┐
│ [1,3,6,11] │ [1.1,3.3000002,6.6000004,12.17] │ [1.10,3.30,6.60,12.17] │
└────────────┴─────────────────────────────────┴────────────────────────┘
گروهاریموینگاوگ
محاسبه میانگین متحرک از ارزش های ورودی.
groupArrayMovingAvg(numbers_for_summing)
groupArrayMovingAvg(window_size)(numbers_for_summing)
این تابع می تواند اندازه پنجره به عنوان یک پارامتر را. اگر سمت چپ نامشخص, تابع طول می کشد اندازه پنجره به تعداد ردیف در ستون برابر.
پارامترها
numbers_for_summing
— عبارت در نتیجه یک مقدار نوع داده عددی.window_size
— Size of the calculation window.
مقادیر بازگشتی
- مجموعه ای از همان اندازه و نوع به عنوان داده های ورودی.
تابع استفاده می کند گرد کردن به سمت صفر. این کوتاه رقم اعشار ناچیز برای نوع داده و در نتیجه.
مثال
جدول نمونه b
:
CREATE TABLE t
(
`int` UInt8,
`float` Float32,
`dec` Decimal32(2)
)
ENGINE = TinyLog
┌─int─┬─float─┬──dec─┐
│ 1 │ 1.1 │ 1.10 │
│ 2 │ 2.2 │ 2.20 │
│ 4 │ 4.4 │ 4.40 │
│ 7 │ 7.77 │ 7.77 │
└─────┴───────┴──────┘
نمایش داده شد:
SELECT
groupArrayMovingAvg(int) AS I,
groupArrayMovingAvg(float) AS F,
groupArrayMovingAvg(dec) AS D
FROM t
┌─I─────────┬─F───────────────────────────────────┬─D─────────────────────┐
│ [0,0,1,3] │ [0.275,0.82500005,1.9250001,3.8675] │ [0.27,0.82,1.92,3.86] │
└───────────┴─────────────────────────────────────┴───────────────────────┘
SELECT
groupArrayMovingAvg(2)(int) AS I,
groupArrayMovingAvg(2)(float) AS F,
groupArrayMovingAvg(2)(dec) AS D
FROM t
┌─I─────────┬─F────────────────────────────────┬─D─────────────────────┐
│ [0,1,3,5] │ [0.55,1.6500001,3.3000002,6.085] │ [0.55,1.65,3.30,6.08] │
└───────────┴──────────────────────────────────┴───────────────────────┘
groupUniqArray(x) groupUniqArray(max_size)(x)
مجموعه ای از مقادیر مختلف استدلال ایجاد می کند. مصرف حافظه همان است که برای uniqExact
تابع.
نسخه دوم (با max_size
پارامتر) اندازه مجموعه حاصل را محدود می کند max_size
عناصر.
به عنوان مثال, groupUniqArray(1)(x)
معادل است [any(x)]
.
quantile
محاسبه تقریبی quantile از یک توالی داده های عددی.
این تابع اعمال می شود نمونه برداری مخزن با اندازه مخزن تا 8192 و یک مولد عدد تصادفی برای نمونه برداری. نتیجه غیر قطعی است. برای دریافت یک کمی دقیق, استفاده از کوانتوم تابع.
هنگام استفاده از چندین quantile*
توابع با سطوح مختلف در پرس و جو, کشورهای داخلی در ترکیب نیست (به این معنا که, پرس و جو کار می کند موثر کمتر از می تواند). در این مورد از quantiles تابع.
نحو
quantile(level)(expr)
نام مستعار: median
.
پارامترها
level
— Level of quantile. Optional parameter. Constant floating-point number from 0 to 1. We recommend using alevel
مقدار در محدوده[0.01, 0.99]
. مقدار پیش فرض: 0.5. درlevel=0.5
تابع محاسبه می کند میانه.expr
— Expression over the column values resulting in numeric انواع داده ها, تاریخ یا DateTime.
مقدار بازگشتی
- کمی تقریبی از سطح مشخص شده است.
نوع:
- جسم شناور64 برای ورودی نوع داده عددی.
- تاریخ اگر مقادیر ورودی
Date
نوع. - DateTime اگر مقادیر ورودی
DateTime
نوع.
مثال
جدول ورودی:
┌─val─┐
│ 1 │
│ 1 │
│ 2 │
│ 3 │
└─────┘
پرسوجو:
SELECT quantile(val) FROM t
نتیجه:
┌─quantile(val)─┐
│ 1.5 │
└───────────────┘
همچنین نگاه کنید به
نامعینیهای کوانتی
محاسبه تقریبی quantile از یک توالی داده های عددی.
این تابع اعمال می شود نمونه برداری مخزن با اندازه مخزن تا 8192 و الگوریتم قطعی نمونه گیری. نتیجه قطعی است. برای دریافت یک کمی دقیق, استفاده از کوانتوم تابع.
هنگام استفاده از چندین quantile*
توابع با سطوح مختلف در پرس و جو, کشورهای داخلی در ترکیب نیست (به این معنا که, پرس و جو کار می کند موثر کمتر از می تواند). در این مورد از quantiles تابع.
نحو
quantileDeterministic(level)(expr, determinator)
نام مستعار: medianDeterministic
.
پارامترها
level
— Level of quantile. Optional parameter. Constant floating-point number from 0 to 1. We recommend using alevel
مقدار در محدوده[0.01, 0.99]
. مقدار پیش فرض: 0.5. درlevel=0.5
تابع محاسبه می کند میانه.expr
— Expression over the column values resulting in numeric انواع داده ها, تاریخ یا DateTime.determinator
— Number whose hash is used instead of a random number generator in the reservoir sampling algorithm to make the result of sampling deterministic. As a determinator you can use any deterministic positive number, for example, a user id or an event id. If the same determinator value occures too often, the function works incorrectly.
مقدار بازگشتی
- کمی تقریبی از سطح مشخص شده است.
نوع:
- جسم شناور64 برای ورودی نوع داده عددی.
- تاریخ اگر مقادیر ورودی
Date
نوع. - DateTime اگر مقادیر ورودی
DateTime
نوع.
مثال
جدول ورودی:
┌─val─┐
│ 1 │
│ 1 │
│ 2 │
│ 3 │
└─────┘
پرسوجو:
SELECT quantileDeterministic(val, 1) FROM t
نتیجه:
┌─quantileDeterministic(val, 1)─┐
│ 1.5 │
└───────────────────────────────┘
همچنین نگاه کنید به
کوانتوم
دقیقا محاسبه می کند quantile از یک توالی داده های عددی.
To get exact value, all the passed values are combined into an array, which is then partially sorted. Therefore, the function consumes O(n)
حافظه, جایی که n
تعدادی از ارزش هایی که تصویب شد. اما, برای تعداد کمی از ارزش, تابع بسیار موثر است.
هنگام استفاده از چندین quantile*
توابع با سطوح مختلف در پرس و جو, کشورهای داخلی در ترکیب نیست (به این معنا که, پرس و جو کار می کند موثر کمتر از می تواند). در این مورد از quantiles تابع.
نحو
quantileExact(level)(expr)
نام مستعار: medianExact
.
پارامترها
level
— Level of quantile. Optional parameter. Constant floating-point number from 0 to 1. We recommend using alevel
مقدار در محدوده[0.01, 0.99]
. مقدار پیش فرض: 0.5. درlevel=0.5
تابع محاسبه می کند میانه.expr
— Expression over the column values resulting in numeric انواع داده ها, تاریخ یا DateTime.
مقدار بازگشتی
- Quantile از سطح مشخص شده.
نوع:
- جسم شناور64 برای ورودی نوع داده عددی.
- تاریخ اگر مقادیر ورودی
Date
نوع. - DateTime اگر مقادیر ورودی
DateTime
نوع.
مثال
پرسوجو:
SELECT quantileExact(number) FROM numbers(10)
نتیجه:
┌─quantileExact(number)─┐
│ 5 │
└───────────────────────┘
همچنین نگاه کنید به
نمایش سایت
دقیقا محاسبه می کند quantile از یک توالی داده های عددی, با در نظر گرفتن وزن هر عنصر.
To get exact value, all the passed values are combined into an array, which is then partially sorted. Each value is counted with its weight, as if it is present weight
times. A hash table is used in the algorithm. Because of this, if the passed values are frequently repeated, the function consumes less RAM than کوانتوم. شما می توانید این تابع به جای استفاده از quantileExact
و وزن 1 را مشخص کنید.
هنگام استفاده از چندین quantile*
توابع با سطوح مختلف در پرس و جو, کشورهای داخلی در ترکیب نیست (به این معنا که, پرس و جو کار می کند موثر کمتر از می تواند). در این مورد از quantiles تابع.
نحو
quantileExactWeighted(level)(expr, weight)
نام مستعار: medianExactWeighted
.
پارامترها
level
— Level of quantile. Optional parameter. Constant floating-point number from 0 to 1. We recommend using alevel
مقدار در محدوده[0.01, 0.99]
. مقدار پیش فرض: 0.5. درlevel=0.5
تابع محاسبه می کند میانه.expr
— Expression over the column values resulting in numeric انواع داده ها, تاریخ یا DateTime.weight
— Column with weights of sequence members. Weight is a number of value occurrences.
مقدار بازگشتی
- Quantile از سطح مشخص شده.
نوع:
- جسم شناور64 برای ورودی نوع داده عددی.
- تاریخ اگر مقادیر ورودی
Date
نوع. - DateTime اگر مقادیر ورودی
DateTime
نوع.
مثال
جدول ورودی:
┌─n─┬─val─┐
│ 0 │ 3 │
│ 1 │ 2 │
│ 2 │ 1 │
│ 5 │ 4 │
└───┴─────┘
پرسوجو:
SELECT quantileExactWeighted(n, val) FROM t
نتیجه:
┌─quantileExactWeighted(n, val)─┐
│ 1 │
└───────────────────────────────┘
همچنین نگاه کنید به
زمان کمی
با دقت تعیین شده محاسبه می شود quantile از یک توالی داده های عددی.
نتیجه قطعی است(به سفارش پردازش پرس و جو بستگی ندارد). این تابع برای کار با توالی هایی که توزیع هایی مانند بارگذاری صفحات وب بار یا زمان پاسخ باطن را توصیف می کنند بهینه شده است.
هنگام استفاده از چندین quantile*
توابع با سطوح مختلف در پرس و جو, کشورهای داخلی در ترکیب نیست (به این معنا که, پرس و جو کار می کند موثر کمتر از می تواند). در این مورد از quantiles تابع.
نحو
quantileTiming(level)(expr)
نام مستعار: medianTiming
.
پارامترها
-
level
— Level of quantile. Optional parameter. Constant floating-point number from 0 to 1. We recommend using alevel
مقدار در محدوده[0.01, 0.99]
. مقدار پیش فرض: 0.5. درlevel=0.5
تابع محاسبه می کند میانه. -
expr
— عبارت بیش از یک مقادیر ستون بازگشت شناور*- نوع شماره .- If negative values are passed to the function, the behavior is undefined. - If the value is greater than 30,000 (a page loading time of more than 30 seconds), it is assumed to be 30,000.
دقت
محاسبه دقیق است اگر:
- تعداد کل مقادیر 5670 تجاوز نمی کند.
- تعداد کل مقادیر بیش از 5670, اما زمان بارگذاری صفحه کمتر از است 1024خانم.
در غیر این صورت, نتیجه محاسبه به نزدیکترین چند از گرد 16 خانم.
!!! note "یادداشت" برای محاسبه زمان بارگذاری صفحه quantiles این تابع این است که موثر تر و دقیق تر از quantile.
مقدار بازگشتی
- Quantile از سطح مشخص شده.
نوع: Float32
.
!!! note "یادداشت"
اگر هیچ ارزش به تابع منتقل می شود (هنگام استفاده از quantileTimingIf
), نان بازگشته است. هدف از این است که افتراق این موارد از مواردی که منجر به صفر. ببینید ORDER BY برای یادداشت ها در مرتب سازی NaN
ارزشهای خبری عبارتند از:
مثال
جدول ورودی:
┌─response_time─┐
│ 72 │
│ 112 │
│ 126 │
│ 145 │
│ 104 │
│ 242 │
│ 313 │
│ 168 │
│ 108 │
└───────────────┘
پرسوجو:
SELECT quantileTiming(response_time) FROM t
نتیجه:
┌─quantileTiming(response_time)─┐
│ 126 │
└───────────────────────────────┘
همچنین نگاه کنید به
زمان کمی
با دقت تعیین شده محاسبه می شود quantile از یک توالی داده های عددی با توجه به وزن هر یک از اعضای دنباله.
نتیجه قطعی است(به سفارش پردازش پرس و جو بستگی ندارد). این تابع برای کار با توالی هایی که توزیع هایی مانند بارگذاری صفحات وب بار یا زمان پاسخ باطن را توصیف می کنند بهینه شده است.
هنگام استفاده از چندین quantile*
توابع با سطوح مختلف در پرس و جو, کشورهای داخلی در ترکیب نیست (به این معنا که, پرس و جو کار می کند موثر کمتر از می تواند). در این مورد از quantiles تابع.
نحو
quantileTimingWeighted(level)(expr, weight)
نام مستعار: medianTimingWeighted
.
پارامترها
-
level
— Level of quantile. Optional parameter. Constant floating-point number from 0 to 1. We recommend using alevel
مقدار در محدوده[0.01, 0.99]
. مقدار پیش فرض: 0.5. درlevel=0.5
تابع محاسبه می کند میانه. -
expr
— عبارت بیش از یک مقادیر ستون بازگشت شناور*- نوع شماره .- If negative values are passed to the function, the behavior is undefined. - If the value is greater than 30,000 (a page loading time of more than 30 seconds), it is assumed to be 30,000.
-
weight
— Column with weights of sequence elements. Weight is a number of value occurrences.
دقت
محاسبه دقیق است اگر:
- تعداد کل مقادیر 5670 تجاوز نمی کند.
- تعداد کل مقادیر بیش از 5670, اما زمان بارگذاری صفحه کمتر از است 1024خانم.
در غیر این صورت, نتیجه محاسبه به نزدیکترین چند از گرد 16 خانم.
!!! note "یادداشت" برای محاسبه زمان بارگذاری صفحه quantiles این تابع این است که موثر تر و دقیق تر از quantile.
مقدار بازگشتی
- Quantile از سطح مشخص شده.
نوع: Float32
.
!!! note "یادداشت"
اگر هیچ ارزش به تابع منتقل می شود (هنگام استفاده از quantileTimingIf
), نان بازگشته است. هدف از این است که افتراق این موارد از مواردی که منجر به صفر. ببینید ORDER BY برای یادداشت ها در مرتب سازی NaN
ارزشهای خبری عبارتند از:
مثال
جدول ورودی:
┌─response_time─┬─weight─┐
│ 68 │ 1 │
│ 104 │ 2 │
│ 112 │ 3 │
│ 126 │ 2 │
│ 138 │ 1 │
│ 162 │ 1 │
└───────────────┴────────┘
پرسوجو:
SELECT quantileTimingWeighted(response_time, weight) FROM t
نتیجه:
┌─quantileTimingWeighted(response_time, weight)─┐
│ 112 │
└───────────────────────────────────────────────┘
همچنین نگاه کنید به
مقدار کمی
محاسبه تقریبی quantile از یک توالی داده های عددی با استفاده از خلاصه الگوریتم.
حداکثر خطا است 1%. مصرف حافظه است log(n)
کجا n
تعدادی از ارزش است. نتیجه بستگی دارد منظور از در حال اجرا پرس و جو و nondeterministic.
عملکرد تابع کمتر از عملکرد است quantile یا زمان کمی. از لحاظ نسبت اندازه دولت به دقت, این تابع بسیار بهتر از quantile
.
هنگام استفاده از چندین quantile*
توابع با سطوح مختلف در پرس و جو, کشورهای داخلی در ترکیب نیست (به این معنا که, پرس و جو کار می کند موثر کمتر از می تواند). در این مورد از quantiles تابع.
نحو
quantileTDigest(level)(expr)
نام مستعار: medianTDigest
.
پارامترها
level
— Level of quantile. Optional parameter. Constant floating-point number from 0 to 1. We recommend using alevel
مقدار در محدوده[0.01, 0.99]
. مقدار پیش فرض: 0.5. درlevel=0.5
تابع محاسبه می کند میانه.expr
— Expression over the column values resulting in numeric انواع داده ها, تاریخ یا DateTime.
مقدار بازگشتی
- کمی تقریبی از سطح مشخص شده است.
نوع:
- جسم شناور64 برای ورودی نوع داده عددی.
- تاریخ اگر مقادیر ورودی
Date
نوع. - DateTime اگر مقادیر ورودی
DateTime
نوع.
مثال
پرسوجو:
SELECT quantileTDigest(number) FROM numbers(10)
نتیجه:
┌─quantileTDigest(number)─┐
│ 4.5 │
└─────────────────────────┘
همچنین نگاه کنید به
نمایش سایت
محاسبه تقریبی quantile از یک توالی داده های عددی با استفاده از خلاصه الگوریتم. تابع طول می کشد را به حساب وزن هر یک از اعضای دنباله. حداکثر خطا است 1%. مصرف حافظه است log(n)
کجا n
تعدادی از ارزش است.
عملکرد تابع کمتر از عملکرد است quantile یا زمان کمی. از لحاظ نسبت اندازه دولت به دقت, این تابع بسیار بهتر از quantile
.
نتیجه بستگی دارد منظور از در حال اجرا پرس و جو و nondeterministic.
هنگام استفاده از چندین quantile*
توابع با سطوح مختلف در پرس و جو, کشورهای داخلی در ترکیب نیست (به این معنا که, پرس و جو کار می کند موثر کمتر از می تواند). در این مورد از quantiles تابع.
نحو
quantileTDigest(level)(expr)
نام مستعار: medianTDigest
.
پارامترها
level
— Level of quantile. Optional parameter. Constant floating-point number from 0 to 1. We recommend using alevel
مقدار در محدوده[0.01, 0.99]
. مقدار پیش فرض: 0.5. درlevel=0.5
تابع محاسبه می کند میانه.expr
— Expression over the column values resulting in numeric انواع داده ها, تاریخ یا DateTime.weight
— Column with weights of sequence elements. Weight is a number of value occurrences.
مقدار بازگشتی
- کمی تقریبی از سطح مشخص شده است.
نوع:
- جسم شناور64 برای ورودی نوع داده عددی.
- تاریخ اگر مقادیر ورودی
Date
نوع. - DateTime اگر مقادیر ورودی
DateTime
نوع.
مثال
پرسوجو:
SELECT quantileTDigestWeighted(number, 1) FROM numbers(10)
نتیجه:
┌─quantileTDigestWeighted(number, 1)─┐
│ 4.5 │
└────────────────────────────────────┘
همچنین نگاه کنید به
میانه
این median*
توابع نام مستعار برای مربوطه quantile*
توابع. متوسط یک نمونه داده عددی را محاسبه می کنند.
توابع:
median
— Alias for quantile.medianDeterministic
— Alias for نامعینیهای کوانتی.medianExact
— Alias for کوانتوم.medianExactWeighted
— Alias for نمایش سایت.medianTiming
— Alias for زمان کمی.medianTimingWeighted
— Alias for زمان کمی.medianTDigest
— Alias for مقدار کمی.medianTDigestWeighted
— Alias for نمایش سایت.
مثال
جدول ورودی:
┌─val─┐
│ 1 │
│ 1 │
│ 2 │
│ 3 │
└─────┘
پرسوجو:
SELECT medianDeterministic(val, 1) FROM t
نتیجه:
┌─medianDeterministic(val, 1)─┐
│ 1.5 │
└─────────────────────────────┘
quantiles(level1, level2, …)(x)
تمام quantile توابع نیز مربوط quantiles توابع: quantiles
, quantilesDeterministic
, quantilesTiming
, quantilesTimingWeighted
, quantilesExact
, quantilesExactWeighted
, quantilesTDigest
. این توابع محاسبه تمام کوانتوم از سطوح ذکر شده در یک پاس, و بازگشت مجموعه ای از مقادیر حاصل.
اطلاعات دقیق)
محاسبه مقدار Σ((x - x̅)^2) / (n - 1)
کجا n
اندازه نمونه است و x̅
مقدار متوسط است x
.
این نشان دهنده یک تخمین بی طرفانه از واریانس یک متغیر تصادفی اگر ارزش گذشت نمونه خود را تشکیل می دهند.
بازگشت Float64
. چه زمانی n <= 1
, بازگشت +∞
.
!!! note "یادداشت"
این تابع با استفاده از الگوریتم عددی ناپایدار. اگر شما نیاز دارید پایداری عددی در محاسبات, استفاده از varSampStable
تابع. این کار کندتر, فراهم می کند اما خطای محاسباتی کمتر.
هشدار داده می شود)
محاسبه مقدار Σ((x - x̅)^2) / n
کجا n
اندازه نمونه است و x̅
مقدار متوسط است x
.
به عبارت دیگر, پراکندگی برای مجموعه ای از ارزش. بازگشت Float64
.
!!! note "یادداشت"
این تابع با استفاده از الگوریتم عددی ناپایدار. اگر شما نیاز دارید پایداری عددی در محاسبات, استفاده از varPopStable
تابع. این کار کندتر, فراهم می کند اما خطای محاسباتی کمتر.
اطلاعات دقیق)
نتیجه برابر با ریشه مربع است varSamp(x)
.
!!! note "یادداشت"
این تابع با استفاده از الگوریتم عددی ناپایدار. اگر شما نیاز دارید پایداری عددی در محاسبات, استفاده از stddevSampStable
تابع. این کار کندتر, فراهم می کند اما خطای محاسباتی کمتر.
اطلاعات دقیق)
نتیجه برابر با ریشه مربع است varPop(x)
.
!!! note "یادداشت"
این تابع با استفاده از الگوریتم عددی ناپایدار. اگر شما نیاز دارید پایداری عددی در محاسبات, استفاده از stddevPopStable
تابع. این کار کندتر, فراهم می کند اما خطای محاسباتی کمتر.
topK(N)(x)
بازگرداندن مجموعه ای از مقادیر تقریبا شایع ترین در ستون مشخص. مجموعه حاصل به ترتیب نزولی فرکانس تقریبی ارزش ها (نه با ارزش های خود) طبقه بندی شده اند.
پیاده سازی فیلتر صرفه جویی در فضا الگوریتم برای تجزیه و تحلیل توپک, بر اساس الگوریتم کاهش و ترکیب از صرفه جویی در فضای موازی.
topK(N)(column)
این تابع یک نتیجه تضمین شده را فراهم نمی کند. در شرایط خاص, اشتباهات ممکن است رخ دهد و ممکن است مقادیر مکرر که مقادیر شایع ترین نیست بازگشت.
ما توصیه می کنیم با استفاده از N < 10
عملکرد با بزرگ کاهش می یابد N
ارزشهای خبری عبارتند از: حداکثر مقدار N = 65536
.
پارامترها
- ‘N’ است تعدادی از عناصر به بازگشت.
اگر پارامتر حذف شده است, مقدار پیش فرض 10 استفاده شده است.
نشانوندها
- ' x ' – The value to calculate frequency.
مثال
نگاهی به به موقع مجموعه داده ها و انتخاب سه ارزش اغلب اتفاق می افتد در AirlineID
ستون.
SELECT topK(3)(AirlineID) AS res
FROM ontime
┌─res─────────────────┐
│ [19393,19790,19805] │
└─────────────────────┘
کشتی کج
مشابه به topK
اما طول می کشد یک استدلال اضافی از نوع صحیح - weight
. هر مقدار به حساب weight
بار برای محاسبه فرکانس.
نحو
topKWeighted(N)(x, weight)
پارامترها
N
— The number of elements to return.
نشانوندها
x
– The value.weight
— The weight. UInt8.
مقدار بازگشتی
بازگرداندن مجموعه ای از مقادیر با حداکثر مجموع تقریبی وزن.
مثال
پرسوجو:
SELECT topKWeighted(10)(number, number) FROM numbers(1000)
نتیجه:
┌─topKWeighted(10)(number, number)──────────┐
│ [999,998,997,996,995,994,993,992,991,990] │
└───────────────────────────────────────────┘
هشدار داده می شود)
محاسبه ارزش Σ((x - x̅)(y - y̅)) / (n - 1)
.
را برمی گرداند شناور64. چه زمانی n <= 1
, returns +∞.
!!! note "یادداشت"
این تابع با استفاده از الگوریتم عددی ناپایدار. اگر شما نیاز دارید پایداری عددی در محاسبات, استفاده از covarSampStable
تابع. این کار کندتر, فراهم می کند اما خطای محاسباتی کمتر.
نمایش سایت)
محاسبه ارزش Σ((x - x̅)(y - y̅)) / n
.
!!! note "یادداشت"
این تابع با استفاده از الگوریتم عددی ناپایدار. اگر شما نیاز دارید پایداری عددی در محاسبات, استفاده از covarPopStable
تابع. این کار کندتر فراهم می کند اما یک خطای محاسباتی کمتر.
هشدار داده می شود)
محاسبه ضریب همبستگی پیرسون: Σ((x - x̅)(y - y̅)) / sqrt(Σ((x - x̅)^2) * Σ((y - y̅)^2))
.
!!! note "یادداشت"
این تابع با استفاده از الگوریتم عددی ناپایدار. اگر شما نیاز دارید پایداری عددی در محاسبات, استفاده از corrStable
تابع. این کار کندتر, فراهم می کند اما خطای محاسباتی کمتر.
طبقه بندی فرمول بندی
محاسبه ارزش (P(tag = 1) - P(tag = 0))(log(P(tag = 1)) - log(P(tag = 0)))
برای هر دسته.
categoricalInformationValue(category1, category2, ..., tag)
نتیجه نشان می دهد که چگونه یک ویژگی گسسته (قطعی) [category1, category2, ...]
کمک به یک مدل یادگیری که پیش بینی ارزش tag
.
ساده سازی مقررات
انجام ساده (unidimensional) رگرسیون خطی.
simpleLinearRegression(x, y)
پارامترها:
x
— Column with dependent variable values.y
— Column with explanatory variable values.
مقادیر بازگشتی:
ثابتها (a, b)
از خط نتیجه y = a*x + b
.
مثالها
SELECT arrayReduce('simpleLinearRegression', [0, 1, 2, 3], [0, 1, 2, 3])
┌─arrayReduce('simpleLinearRegression', [0, 1, 2, 3], [0, 1, 2, 3])─┐
│ (1,0) │
└───────────────────────────────────────────────────────────────────┘
SELECT arrayReduce('simpleLinearRegression', [0, 1, 2, 3], [3, 4, 5, 6])
┌─arrayReduce('simpleLinearRegression', [0, 1, 2, 3], [3, 4, 5, 6])─┐
│ (1,3) │
└───────────────────────────────────────────────────────────────────┘
تنظیم مقررات
این تابع پیاده سازی رگرسیون خطی تصادفی. این پشتیبانی از پارامترهای سفارشی برای نرخ یادگیری, ل2 ضریب منظم, اندازه مینی دسته ای و دارای چند روش برای به روز رسانی وزن (ادام (به طور پیش فرض استفاده می شود), اطلاعات دقیق, شتاب, نستروف).
پارامترها
4 پارامتر قابل تنظیم وجود دارد. به ترتیب تابع منتقل می شود اما بدون نیاز به تصویب تمام مقادیر چهار پیش فرض استفاده می شود با این حال مدل خوب مورد نیاز برخی از تنظیم پارامتر وجود دارد.
stochasticLinearRegression(1.0, 1.0, 10, 'SGD')
learning rate
ضریب در طول گام است, زمانی که گام گرادیان تبار انجام شده است. نرخ یادگیری بیش از حد بزرگ ممکن است وزن بی نهایت از مدل شود. پیشفرض0.00001
.l2 regularization coefficient
که ممکن است کمک به جلوگیری از سوراخ سوراخ شدن بیش از حد. پیشفرض0.1
.mini-batch size
مجموعه تعدادی از عناصر که شیب محاسبه خواهد شد و خلاصه به انجام یک مرحله از گرادیان تبار. تبار تصادفی خالص با استفاده از یک عنصر, با این حال داشتن دسته های کوچک(در باره 10 عناصر) را گام شیب پایدار تر. پیشفرض15
.method for updating weights
اونا:Adam
(به طور پیش فرض),SGD
,Momentum
,Nesterov
.Momentum
وNesterov
نیاز به کمی بیشتر محاسبات و حافظه, اما آنها به اتفاق مفید از نظر سرعت convergance و ثبات stochastic gradient روش.
استفاده
stochasticLinearRegression
در دو مرحله استفاده می شود: اتصالات مدل و پیش بینی بر روی داده های جدید. به منظور متناسب با مدل و صرفه جویی در دولت خود را برای استفاده های بعدی استفاده می کنیم -State
ترکیب کننده, که اساسا موجب صرفه جویی در دولت (وزن مدل, و غیره).
برای پیش بینی ما با استفاده از تابع ارزیابی, که طول می کشد یک دولت به عنوان یک استدلال و همچنین ویژگی های به پیش بینی در.
1. اتصالات
چنین پرس و جو ممکن است مورد استفاده قرار گیرد.
CREATE TABLE IF NOT EXISTS train_data
(
param1 Float64,
param2 Float64,
target Float64
) ENGINE = Memory;
CREATE TABLE your_model ENGINE = Memory AS SELECT
stochasticLinearRegressionState(0.1, 0.0, 5, 'SGD')(target, param1, param2)
AS state FROM train_data;
در اینجا ما همچنین نیاز به وارد کردن داده ها به train_data
جدول تعداد پارامترهای ثابت نیست, این تنها در تعدادی از استدلال بستگی دارد, گذشت به linearRegressionState
. همه باید مقادیر عددی باشد.
توجه داشته باشید که ستون با ارزش هدف(که ما می خواهم برای یادگیری به پیش بینی) به عنوان اولین استدلال قرار داده شده است.
2. پیش بینی
پس از ذخیره یک دولت به جدول, ما ممکن است چندین بار برای پیش بینی استفاده, و یا حتی با کشورهای دیگر ادغام و ایجاد مدل های جدید و حتی بهتر.
WITH (SELECT state FROM your_model) AS model SELECT
evalMLMethod(model, param1, param2) FROM test_data
پرس و جو یک ستون از مقادیر پیش بینی شده بازگشت. توجه داشته باشید که استدلال اول evalMLMethod
هست AggregateFunctionState
هدف, بعدی ستون از ویژگی های هستند.
test_data
یک جدول مانند train_data
اما ممکن است حاوی ارزش هدف نیست.
یادداشتها
-
برای ادغام دو مدل کاربر ممکن است چنین پرس و جو ایجاد کنید:
sql SELECT state1 + state2 FROM your_models
کجاyour_models
جدول شامل هر دو مدل. این پرس و جو جدید باز خواهد گشتAggregateFunctionState
اعتراض. -
کاربر ممکن است وزن مدل ایجاد شده برای اهداف خود را بدون صرفه جویی در مدل اگر هیچ واکشی
-State
ترکیب استفاده شده است.sql SELECT stochasticLinearRegression(0.01)(target, param1, param2) FROM train_data
چنین پرس و جو خواهد مدل مناسب و بازگشت وزن خود را - برای اولین بار وزن هستند, که به پارامترهای مدل مطابقت, یکی از گذشته تعصب است. بنابراین در مثال بالا پرس و جو یک ستون با 3 مقدار بازگشت.
همچنین نگاه کنید به
سرکوب مقررات عمومی
این تابع پیاده سازی رگرسیون لجستیک تصادفی. این را می توان برای مشکل طبقه بندی دودویی استفاده, پشتیبانی از پارامترهای سفارشی به عنوان مقررات زدایی و کار به همان شیوه.
پارامترها
پارامترها دقیقا مشابه در تنظیم مقررات است:
learning rate
, l2 regularization coefficient
, mini-batch size
, method for updating weights
.
برای اطلاعات بیشتر نگاه کنید به پارامترها.
stochasticLogisticRegression(1.0, 1.0, 10, 'SGD')
- اتصالات
See the `Fitting` section in the [stochasticLinearRegression](#stochasticlinearregression-usage-fitting) description.
Predicted labels have to be in \[-1, 1\].
- پیش بینی
Using saved state we can predict probability of object having label `1`.
``` sql
WITH (SELECT state FROM your_model) AS model SELECT
evalMLMethod(model, param1, param2) FROM test_data
```
The query will return a column of probabilities. Note that first argument of `evalMLMethod` is `AggregateFunctionState` object, next are columns of features.
We can also set a bound of probability, which assigns elements to different labels.
``` sql
SELECT ans < 1.1 AND ans > 0.5 FROM
(WITH (SELECT state FROM your_model) AS model SELECT
evalMLMethod(model, param1, param2) AS ans FROM test_data)
```
Then the result will be labels.
`test_data` is a table like `train_data` but may not contain target value.
همچنین نگاه کنید به
گروهبیتمافند
محاسبات و یک بیت مپ ستون بازگشت cardinality از نوع UInt64 اگر اضافه کردن پسوند -دولت بازگشت شی نگاشت بیت.
groupBitmapAnd(expr)
پارامترها
expr
– An expression that results in AggregateFunction(groupBitmap, UInt*)
نوع.
مقدار بازگشتی
ارزش UInt64
نوع.
مثال
DROP TABLE IF EXISTS bitmap_column_expr_test2;
CREATE TABLE bitmap_column_expr_test2
(
tag_id String,
z AggregateFunction(groupBitmap, UInt32)
)
ENGINE = MergeTree
ORDER BY tag_id;
INSERT INTO bitmap_column_expr_test2 VALUES ('tag1', bitmapBuild(cast([1,2,3,4,5,6,7,8,9,10] as Array(UInt32))));
INSERT INTO bitmap_column_expr_test2 VALUES ('tag2', bitmapBuild(cast([6,7,8,9,10,11,12,13,14,15] as Array(UInt32))));
INSERT INTO bitmap_column_expr_test2 VALUES ('tag3', bitmapBuild(cast([2,4,6,8,10,12] as Array(UInt32))));
SELECT groupBitmapAnd(z) FROM bitmap_column_expr_test2 WHERE like(tag_id, 'tag%');
┌─groupBitmapAnd(z)─┐
│ 3 │
└───────────────────┘
SELECT arraySort(bitmapToArray(groupBitmapAndState(z))) FROM bitmap_column_expr_test2 WHERE like(tag_id, 'tag%');
┌─arraySort(bitmapToArray(groupBitmapAndState(z)))─┐
│ [6,8,10] │
└──────────────────────────────────────────────────┘
گروهبیتمافور
محاسبات و یا یک بیت مپ ستون بازگشت cardinality از نوع UInt64 اگر اضافه کردن پسوند -دولت بازگشت شی نگاشت بیت. این معادل است groupBitmapMerge
.
groupBitmapOr(expr)
پارامترها
expr
– An expression that results in AggregateFunction(groupBitmap, UInt*)
نوع.
مقدار بازگشتی
ارزش UInt64
نوع.
مثال
DROP TABLE IF EXISTS bitmap_column_expr_test2;
CREATE TABLE bitmap_column_expr_test2
(
tag_id String,
z AggregateFunction(groupBitmap, UInt32)
)
ENGINE = MergeTree
ORDER BY tag_id;
INSERT INTO bitmap_column_expr_test2 VALUES ('tag1', bitmapBuild(cast([1,2,3,4,5,6,7,8,9,10] as Array(UInt32))));
INSERT INTO bitmap_column_expr_test2 VALUES ('tag2', bitmapBuild(cast([6,7,8,9,10,11,12,13,14,15] as Array(UInt32))));
INSERT INTO bitmap_column_expr_test2 VALUES ('tag3', bitmapBuild(cast([2,4,6,8,10,12] as Array(UInt32))));
SELECT groupBitmapOr(z) FROM bitmap_column_expr_test2 WHERE like(tag_id, 'tag%');
┌─groupBitmapOr(z)─┐
│ 15 │
└──────────────────┘
SELECT arraySort(bitmapToArray(groupBitmapOrState(z))) FROM bitmap_column_expr_test2 WHERE like(tag_id, 'tag%');
┌─arraySort(bitmapToArray(groupBitmapOrState(z)))─┐
│ [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] │
└─────────────────────────────────────────────────┘
گروهبیتمافکر
محاسبات XOR یک بیت مپ ستون بازگشت cardinality از نوع UInt64 اگر اضافه کردن پسوند -دولت بازگشت شی نگاشت بیت.
groupBitmapOr(expr)
پارامترها
expr
– An expression that results in AggregateFunction(groupBitmap, UInt*)
نوع.
مقدار بازگشتی
ارزش UInt64
نوع.
مثال
DROP TABLE IF EXISTS bitmap_column_expr_test2;
CREATE TABLE bitmap_column_expr_test2
(
tag_id String,
z AggregateFunction(groupBitmap, UInt32)
)
ENGINE = MergeTree
ORDER BY tag_id;
INSERT INTO bitmap_column_expr_test2 VALUES ('tag1', bitmapBuild(cast([1,2,3,4,5,6,7,8,9,10] as Array(UInt32))));
INSERT INTO bitmap_column_expr_test2 VALUES ('tag2', bitmapBuild(cast([6,7,8,9,10,11,12,13,14,15] as Array(UInt32))));
INSERT INTO bitmap_column_expr_test2 VALUES ('tag3', bitmapBuild(cast([2,4,6,8,10,12] as Array(UInt32))));
SELECT groupBitmapXor(z) FROM bitmap_column_expr_test2 WHERE like(tag_id, 'tag%');
┌─groupBitmapXor(z)─┐
│ 10 │
└───────────────────┘
SELECT arraySort(bitmapToArray(groupBitmapXorState(z))) FROM bitmap_column_expr_test2 WHERE like(tag_id, 'tag%');
┌─arraySort(bitmapToArray(groupBitmapXorState(z)))─┐
│ [1,3,5,6,8,10,11,13,14,15] │
└──────────────────────────────────────────────────┘