الانتقال إلى المحتوى الرئيسي
تم إنشاء الوثائق أدناه استنادًا إلى جدول النظام system.functions.

dotProduct

مُستحدثة في: v21.11.0 تحسب الضرب النقطي (الجداء القياسي) لمتجهين (tupleين أو مصفوفتين متساويتين في الحجم). وتُرجِع مجموع نواتج ضرب العناصر المناظرة. الصيغة
dotProduct(vector1, vector2)
الأسماء المستعارة: scalarProduct الوسائط
  • vector1 — المتجه الأول. Array(T) أو Tuple(T)
  • vector2 — المتجه الثاني. يجب أن يكون بالحجم نفسه للمتجه الأول. Array(T) أو Tuple(T)
القيمة المُعادة تعيد حاصل الضرب النقطي للمتجهين. (U)Int* أو Float* أو Decimal أمثلة الاستخدام الأساسي
Query
SELECT dotProduct((1, 2), (3, 4))
Response
11

flattenTuple

أُضيفت في: v22.6.0 تُسطِّح Tuple مُسمّى ومتداخلاً. تكون عناصر الـ Tuple المُعادة هي مسارات الـ Tuple المُدخلة. البنية
flattenTuple(input)
الوسائط القيمة المُعادة يُرجع Tuple ناتجًا تكون عناصره مسارات من الإدخال الأصلي. Tuple(T) أمثلة مثال على الاستخدام
Query
CREATE TABLE tab(t Tuple(a UInt32, b Tuple(c String, d UInt32))) ENGINE = MergeTree ORDER BY tuple();
INSERT INTO tab VALUES ((3, ('c', 4)));

SELECT flattenTuple(t) FROM tab;
Response
┌─flattenTuple(t)┐
│ (3, 'c', 4)    │
└────────────────┘

tuple

ظهر في: v1.1.0 يعيد tuple من خلال تجميع معاملات الإدخال. بالنسبة إلى الأعمدة C1 وC2 و… ذات الأنواع T1 وT2 و…، فإنه يعيد tuple من النوع المسمى Tuple(C1 T1, C2 T2, …) يحتوي على هذه الأعمدة إذا كانت أسماؤها فريدة ويمكن التعامل معها كمُعرِّفات غير مقتبسة، وإلا فسيُعاد Tuple(T1, T2, …). لا توجد أي تكلفة لتنفيذ هذه الدالة. تُستخدم Tuples عادةً كقيم وسيطة لوسيط من معاملات IN، أو لإنشاء قائمة بالمعاملات الصورية لدوال lambda. ولا يمكن كتابة Tuples في جدول. تُنفِّذ الدالة العامل (x, y, ...). البنية
tuple([t1[, t2[ ...]])
الوسائط
  • لا يوجد.
القيمة المُعادة أمثلة اعتيادي
Query
SELECT tuple(1, 2)
Response
(1,2)

tupleConcat

قُدِّمت في: v23.8.0 تدمج قيم Tuple الممرَّرة كوسائط. البنية
tupleConcat(tuple1[, tuple2, [...]])
المعاملات
  • tupleN — عدد غير محدد من المعاملات من النوع Tuple. Tuple(T)
القيمة المُعادة يُرجِع قيمة Tuple تحتوي على جميع العناصر من قيم Tuple المُدخلة. Tuple(T) أمثلة مثال على الاستخدام
Query
SELECT tupleConcat((1, 2), ('a',), (true, false))
Response
(1, 2, 'a', true, false)

tupleDivide

قُدِّمت في: v21.11.0 تحسب القسمة عنصرًا بعنصر لـ tupleين أو أكثر من الحجم نفسه، وتُطبَّق من اليسار إلى اليمين.
ستُرجع القسمة على صفر القيمة inf.
البنية
tupleDivide(t1, t2[, tN, ...])
الوسيطات القيمة المعادة تعيد قيمة Tuple تحتوي على نواتج القسمة عنصرًا بعنصر. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة قيمتا Tuple
Query
SELECT tupleDivide((1, 2), (2, 3))
Response
(0.5, 0.6666666666666666)
ثلاثة tuples
Query
SELECT tupleDivide((100.0, 60.0), (5.0, 3.0), (2.0, 4.0))
Response
(10, 5)

tupleDivideByNumber

أُضيف في: v21.11.0 يُرجع قيمة Tuple تكون جميع عناصرها مقسومة على عدد.
ستُرجع القسمة على صفر القيمة inf.
البنية
tupleDivideByNumber(tuple, number)
الوسيطات القيمة المعادة تعيد قيمة Tuple تحتوي على عناصر مقسومة. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة الاستخدام الأساسي
Query
SELECT tupleDivideByNumber((1, 2), 0.5)
Response
(2, 4)

tupleElement

أُضيفت في: v1.1.0 تستخرج عنصرًا من Tuple باستخدام الفهرس أو الاسم. للوصول باستخدام الفهرس، يُتوقع فهرس رقمي يبدأ العد فيه من 1. وللوصول باستخدام الاسم، يمكن تمرير اسم العنصر كسلسلة نصية (يعمل هذا فقط مع Tuple المُسمّاة). الفهارس السالبة مدعومة. في هذه الحالة، يُحدَّد العنصر المقابل مع ترقيم يبدأ من النهاية. على سبيل المثال، tuple.-1 هو العنصر الأخير في Tuple. تحدّد وسيطة ثالثة اختيارية قيمة افتراضية تُعاد بدلًا من إطلاق استثناء عندما لا يكون العنصر المطلوب الوصول إليه موجودًا. يجب أن تكون جميع الوسيطات ثوابت. هذه الدالة لا تترتب عليها أي كلفة وقت تشغيل، وتنفّذ المعاملين x.index و x.name. البنية
tupleElement(tuple, index|name[, default_value])
الوسائط
  • tuple — قيمة من النوع Tuple أو مصفوفة من قيم Tuple. Tuple(T) أو Array(Tuple(T))
  • index — فهرس العمود، بدءًا من 1. const UInt8/16/32/64
  • name — اسم العنصر. const String
  • default_value — القيمة الافتراضية التي تُعاد عندما يكون الفهرس خارج النطاق أو عندما لا يكون العنصر موجودًا. Any
القيمة المُعادة يُعاد العنصر عند الفهرس أو الاسم المحدد. Any أمثلة الوصول بالفهرس
Query
SELECT tupleElement((1, 'hello'), 2)
Response
hello
الفهرسة بالمؤشرات السالبة
Query
SELECT tupleElement((1, 'hello'), -1)
Response
hello
Tuple مُسمّاة مع جدول
Query
CREATE TABLE example (values Tuple(name String, age UInt32)) ENGINE = Memory;
INSERT INTO example VALUES (('Alice', 30));
SELECT tupleElement(values, 'name') FROM example;
Response
Alice
مع القيمة الافتراضية
Query
SELECT tupleElement((1, 2), 5, 'not_found')
Response
not_found
صيغة المعامل
Query
SELECT (1, 'hello').2
Response
hello

tupleHammingDistance

أُضيفت في: v21.1.0 تعيد مسافة هامينغ بين قيمتَي Tuple لهما العدد نفسه من العناصر.
يُحدَّد نوع النتيجة بالطريقة نفسها المتبعة في الدوال الحسابية، وذلك بناءً على عدد العناصر في قيمتَي Tuple المُدخلتَين.
SELECT
    toTypeName(tupleHammingDistance(tuple(0), tuple(0))) AS t1,
    toTypeName(tupleHammingDistance((0, 0), (0, 0))) AS t2,
    toTypeName(tupleHammingDistance((0, 0, 0), (0, 0, 0))) AS t3,
    toTypeName(tupleHammingDistance((0, 0, 0, 0), (0, 0, 0, 0))) AS t4,
    toTypeName(tupleHammingDistance((0, 0, 0, 0, 0), (0, 0, 0, 0, 0))) AS t5
┌─t1────┬─t2─────┬─t3─────┬─t4─────┬─t5─────┐
│ UInt8 │ UInt16 │ UInt32 │ UInt64 │ UInt64 │
└───────┴────────┴────────┴────────┴────────┘
الصيغة
tupleHammingDistance(t1, t2)
الوسائط القيمة المُعادة تعيد مسافة هامينغ. UInt8/16/32/64 أمثلة مثال على الاستخدام
Query
SELECT tupleHammingDistance((1, 2, 3), (3, 2, 1))
Response
2
باستخدام MinHash لاكتشاف السلاسل النصية شبه المتطابقة
Query
SELECT tupleHammingDistance(wordShingleMinHash(string), wordShingleMinHashCaseInsensitive(string)) FROM (SELECT 'ClickHouse is a column-oriented database management system for online analytical processing of queries.' AS string)
Response
2

tupleIntDiv

تم تقديمه في: v23.8.0 يجري قسمة صحيحة على مستوى كل عنصر لاثنين أو أكثر من عناصر Tuple ذات الحجم نفسه، مع التطبيق من اليسار إلى اليمين. ويُرجع Tuple من نواتج القسمة. إذا كان أي Tuple يحتوي على عناصر غير صحيحة، فتُحسب النتيجة بتقريب كل بسط أو مقسوم عليه غير صحيح إلى أقرب عدد صحيح. تؤدي القسمة على 0 إلى طرح استثناء. البنية
tupleIntDiv(t1, t2[, tN, ...])
الوسيطات القيمة المعادة تعيد Tuple من نواتج القسمة الصحيحة. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة Tupleان
Query
SELECT tupleIntDiv((15, 10, 5), (5, 5, 5))
Response
(3, 2, 1)
مع القيم العشرية
Query
SELECT tupleIntDiv((15, 10, 5), (5.5, 5.5, 5.5))
Response
(2, 1, 0)
ثلاثة Tuples
Query
SELECT tupleIntDiv((120, 60), (4, 3), (2, 4))
Response
(15, 5)

tupleIntDivByNumber

أُضيفت في: v23.8.0 تُجري قسمة صحيحة على Tuple من البسوط باستخدام مقام معيّن، وتُرجع Tuple من نواتج القسمة. إذا احتوت أيّ من معلمات الإدخال على عناصر غير صحيحة، فستُحسب النتيجة بتقريب كل بسط أو مقسوم عليه غير صحيح إلى أقرب عدد صحيح. سيتم طرح خطأ عند القسمة على 0. البنية
tupleIntDivByNumber(tuple_num, div)
الوسائط القيمة المعادة تعيد Tuple من نواتج القسمة. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة الاستخدام الأساسي
Query
SELECT tupleIntDivByNumber((15, 10, 5), 5)
Response
(3, 2, 1)
مع قيم Decimal
Query
SELECT tupleIntDivByNumber((15.2, 10.7, 5.5), 5.8)
Response
(2, 1, 0)

tupleIntDivOrZero

أُضيف في: v23.8.0 مثل tupleIntDiv، يُجري قسمة صحيحة على مستوى كل عنصر لاثنين أو أكثر من قيم Tuple ذات الحجم نفسه، مع التطبيق من اليسار إلى اليمين. في حالة القسمة على 0، يُرجِع 0 لذلك العنصر بدلًا من إثارة استثناء. إذا احتوى أي Tuple على عناصر غير صحيحة، فتُحتسب النتيجة عبر التقريب إلى أقرب عدد صحيح لكل بسط أو مقسوم عليه غير صحيح. الصياغة
tupleIntDivOrZero(t1, t2[, tN, ...])
الوسائط القيمة المعادة تعيد قيمة Tuple من نواتج القسمة الصحيحة، مع 0 لأي عنصر يكون فيه المقسوم عليه 0. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة مع مقسوم عليه يساوي صفرًا
Query
SELECT tupleIntDivOrZero((5, 10, 15), (0, 0, 0))
Response
(0, 0, 0)
ثلاث قيم Tuple
Query
SELECT tupleIntDivOrZero((120, 60), (4, 3), (2, 4))
Response
(15, 5)

tupleIntDivOrZeroByNumber

قُدِّم في: v23.8.0 مثل tupleIntDivByNumber، يُجري هذا الدالّة قسمةً صحيحة لعناصر Tuple من البسوط على مقام معيّن، ويُرجع Tuple من نواتج القسمة. ولا يُنتج خطأً إذا كان القاسم صفراً، بل يُرجع ناتج القسمة صفراً. إذا احتوى Tuple أو القاسم على عناصر غير صحيحة، فتُحسب النتيجة بتقريب كل بسط أو قاسم غير صحيح إلى أقرب عدد صحيح. البنية
tupleIntDivOrZeroByNumber(tuple_num, div)
الوسيطات القيمة المعادة تُرجِع Tuple من نواتج القسمة، مع 0 للنواتج التي يكون فيها المقسوم عليه 0. Tuple((U)Int*) or Tuple(Float*) or Tuple(Decimal) أمثلة الاستخدام الأساسي
Query
SELECT tupleIntDivOrZeroByNumber((15, 10, 5), 5)
Response
(3, 2, 1)
عند كون القاسم صفرًا
Query
SELECT tupleIntDivOrZeroByNumber((15, 10, 5), 0)
Response
(0, 0, 0)

tupleMinus

قُدِّمت في: v21.11.0 يحسب الفرق عنصرًا بعنصر بين قيمتي Tuple أو أكثر من الحجم نفسه، ويُطبَّق من اليسار إلى اليمين. الصياغة
tupleMinus(t1, t2[, tN, ...])
الأسماء البديلة: vectorDifference الوسيطات القيمة المعادة تعيد قيمة Tuple تحتوي على الفروق عنصرًا بعنصر. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة زوج من قيم Tuple
Query
SELECT tupleMinus((1, 2), (2, 3))
Response
(-1, -1)
ثلاثة Tuples
Query
SELECT tupleMinus((10, 10), (3, 4), (2, 1))
Response
(5, 5)

tupleModulo

قُدِّمت في: v23.8.0 يعيد Tuple يحتوي على بواقي القسمة المحسوبة عنصرًا بعنصر من قسمة مجموعتي Tuple أو أكثر من الحجم نفسه، مع تطبيق العملية من اليسار إلى اليمين. البنية
tupleModulo(t1, t2[, tN, ...])
الوسيطات القيمة المُعادة تُعيد Tuple يحتوي على بواقي القسمة محسوبةً عنصرًا بعنصر. يتم طرح استثناء عند القسمة على صفر. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة قيمتا Tuple
Query
SELECT tupleModulo((15, 10, 5), (5, 3, 2))
Response
(0, 1, 1)
ثلاثة Tuples
Query
SELECT tupleModulo((10, 20), (7, 9), (3, 5))
Response
(0, 2)

tupleModuloByNumber

أُضيف في: v23.8.0 تُرجِع Tuple تحتوي على نواتج باقي القسمة (البواقي) لعمليات القسمة بين Tuple ومقسوم عليه معيّن. الصياغة
tupleModuloByNumber(tuple_num, div)
الوسيطات القيمة المعادة تُرجِع Tuple من بواقي القسمة. ويتم طرح خطأ عند القسمة على صفر. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة الاستخدام الأساسي
Query
SELECT tupleModuloByNumber((15, 10, 5), 2)
Response
(1, 0, 1)

tupleMultiply

أُضيف في: v21.11.0 يحسب حاصل الضرب عنصرًا بعنصر لاثنين أو أكثر من قيم Tuple ذات الحجم نفسه. البنية
tupleMultiply(t1, t2[, tN, ...])
الوسيطات القيمة المعادة تعيد قيمة Tuple تحتوي على نواتج الضرب على مستوى العناصر. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة قيمتا Tuple
Query
SELECT tupleMultiply((1, 2), (2, 3))
Response
(2, 6)
ثلاثة tuples
Query
SELECT tupleMultiply((1, 2), (2, 3), (1, 2))
Response
(2, 12)

tupleMultiplyByNumber

أُضيف في: v21.11.0 يُرجع Tuple تكون جميع عناصرها مضروبة في عدد. البنية
tupleMultiplyByNumber(tuple, number)
المعاملات القيمة المُعادة يُرجع قيمة Tuple بعناصر مضروبة. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة الاستخدام الأساسي
Query
SELECT tupleMultiplyByNumber((1, 2), -2.1)
Response
(-2.1, -4.2)

tupleNames

أُضيفت في: v24.8.0 يحوّل Tuple إلى مصفوفة من أسماء الأعمدة. وبالنسبة إلى Tuple بالصيغة Tuple(a T, b T, ...)، فإنه يعيد مصفوفة من السلاسل النصية التي تمثل الأعمدة المسمّاة في الـ Tuple. وإذا لم تكن لعناصر الـ Tuple أسماء صريحة، فستُستخدم فهارسها بدلًا منها كأسماء للأعمدة. البنية
tupleNames(tuple)
المعاملات
  • لا شيء.
القيمة المعادة أمثلة نموذجي
Query
SELECT tupleNames(tuple(1 as a, 2 as b))
Response
['a','b']

tupleNegate

أُضيفت في: v21.11.0 تحسب القيمة السالبة لعناصر الـ Tuple. الصيغة
tupleNegate(t)
الوسيطات القيمة المعادة تُرجِع قيمة Tuple تحتوي على نتيجة النفي. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة الاستخدام الأساسي
Query
SELECT tupleNegate((1, 2))
Response
(-1, -2)

tuplePlus

طُرح في: v21.11.0 يحسب مجموع العناصر المناظرة في tupleين أو أكثر من الحجم نفسه. الصيغة
tuplePlus(t1, t2[, tN, ...])
الأسماء البديلة: vectorSum الوسائط القيمة المُعادة تُرجِع قيمة Tuple تحتوي على المجاميع عنصرًا بعنصر. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة Tupleان
Query
SELECT tuplePlus((1, 2), (2, 3))
Response
(3, 5)
ثلاثة Tuples
Query
SELECT tuplePlus((1, 2), (2, 3), (3, 4))
Response
(6, 9)

tuplePositiveModuloByNumber

أُضيف في: v26.4.0 يعيد Tuple يحتوي على البواقي الموجبة (remainders) لعمليات قسمة عناصر Tuple على مقسوم عليه معيّن. وعلى خلاف tupleModuloByNumber، تكون النتيجة دائمًا غير سالبة. البنية
tuplePositiveModuloByNumber(tuple_num, div)
الوسيطات القيمة المعادة تُرجع Tuple من البواقي غير السالبة. Tuple((U)Int*) أو Tuple(Float*) أو Tuple(Decimal) أمثلة الاستخدام الأساسي
Query
SELECT tuplePositiveModuloByNumber((15, 10, 5), 2)
Response
(1, 0, 1)

tupleToNameValuePairs

تم تقديمها في: v21.9.0 تحوّل Tuple إلى Array من أزواج (name, value). على سبيل المثال، يُحوَّل الـ Tuple Tuple(n1 T1, n2 T2, ...) إلى Array(Tuple('n1', T1), Tuple('n2', T2), ...). يجب أن تكون جميع القيم في الـ Tuple من النوع نفسه. الصياغة
tupleToNameValuePairs(tuple)
الوسيطات القيمة المعادة تعيد مصفوفة من أزواج (name, value). Array(Tuple(String, T)) أمثلة Tuple مُسمّى
Query
SELECT tupleToNameValuePairs(tuple(1593 AS user_ID, 2502 AS session_ID))
Response
[('1', 1593), ('2', 2502)]
Tuple غير مُسمّى
Query
SELECT tupleToNameValuePairs(tuple(3, 2, 1))
Response
[('1', 3), ('2', 2), ('3', 1)]

untuple

ينفّذ استبدالًا نحويًا لعناصر tuple في موضع الاستدعاء. تعتمد أسماء الأعمدة الناتجة على التنفيذ وقد تتغير. لا تفترض أسماء أعمدة محددة بعد untuple. الصيغة
untuple(x)
يمكنك استخدام التعبير EXCEPT لتخطي الأعمدة من نتيجة الاستعلام. الوسائط
  • x — دالة tuple، أو عمود، أو Tuple من العناصر. Tuple.
القيمة المُعادة
  • لا شيء.
أمثلة جدول الإدخال:
┌─key─┬─v1─┬─v2─┬─v3─┬─v4─┬─v5─┬─v6────────┐
│   1 │ 10 │ 20 │ 40 │ 30 │ 15 │ (33,'ab') │
│   2 │ 25 │ 65 │ 70 │ 40 │  6 │ (44,'cd') │
│   3 │ 57 │ 30 │ 20 │ 10 │  5 │ (55,'ef') │
│   4 │ 55 │ 12 │  7 │ 80 │ 90 │ (66,'gh') │
│   5 │ 30 │ 50 │ 70 │ 25 │ 55 │ (77,'kl') │
└─────┴────┴────┴────┴────┴────┴───────────┘
مثال على استخدام عمود من نوع Tuple بصفته معلمة للدالة untuple:
Query
SELECT untuple(v6) FROM kv;
Response
┌─_ut_1─┬─_ut_2─┐
│    33 │ ab    │
│    44 │ cd    │
│    55 │ ef    │
│    66 │ gh    │
│    77 │ kl    │
└───────┴───────┘
مثال على استخدام تعبير EXCEPT:
Query
SELECT untuple((* EXCEPT (v2, v3),)) FROM kv;
Response
┌─key─┬─v1─┬─v4─┬─v5─┬─v6────────┐
│   1 │ 10 │ 30 │ 15 │ (33,'ab') │
│   2 │ 25 │ 40 │  6 │ (44,'cd') │
│   3 │ 57 │ 10 │  5 │ (55,'ef') │
│   4 │ 55 │ 80 │ 90 │ (66,'gh') │
│   5 │ 30 │ 25 │ 55 │ (77,'kl') │
└─────┴────┴────┴────┴───────────┘

دوال المسافة

ترد جميع الدوال المدعومة في وثائق دوال المسافة.
آخر تعديل في ٢٩ يونيو ٢٠٢٦