تعيد قيمةً محسوبة من الصف الواقع على بُعد offset صفوف بعد الصف الحالي ضمن الإطار المرتب.
يختلف سلوك leadInFrame عن دالة النافذة القياسية lead في SQL.
تراعي دالة النافذة leadInFrame في ClickHouse إطار النافذة.
للحصول على سلوك مطابق تمامًا لـ lead، استخدم ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING.
البنية
leadInFrame(x[, offset[, default]])
OVER ([[PARTITION BY grouping_column] [ORDER BY sorting_column]
[ROWS or RANGE expression_to_bound_rows_withing_the_group]] | [window_name])
FROM table_name
WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column])
لمزيد من التفاصيل حول بنية دوال النافذة، راجع: دوال النافذة - البنية.
المعلمات
x — اسم العمود.
offset — الإزاحة المراد تطبيقها. (U)Int*. (اختياري - 1 افتراضيًا).
default — القيمة التي ستُعاد إذا تجاوز الصف المحسوب حدود إطار النافذة. (اختياري - القيمة الافتراضية لنوع العمود عند عدم تحديدها).
القيمة المُعادة
- القيمة التي جرى تقييمها في الصف الذي يقع بعد الصف الحالي بعدد الصفوف المحدد في الإزاحة ضمن الإطار المرتَّب.
مثال
يستعرض هذا المثال البيانات التاريخية للفائزين بجائزة نوبل، ويستخدم الدالة leadInFrame لإرجاع قائمة بالفائزين المتعاقبين في فئة الفيزياء.
CREATE OR REPLACE VIEW nobel_prize_laureates
AS SELECT *
FROM file('nobel_laureates_data.csv');
SELECT
fullName,
leadInFrame(year, 1, year) OVER (PARTITION BY category ORDER BY year ASC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS year,
category,
motivation
FROM nobel_prize_laureates
WHERE category = 'physics'
ORDER BY year DESC
LIMIT 9
┌─fullName─────────┬─year─┬─category─┬─motivation─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
1. │ Anne L Huillier │ 2023 │ physics │ for experimental methods that generate attosecond pulses of light for the study of electron dynamics in matter │
2. │ Pierre Agostini │ 2023 │ physics │ for experimental methods that generate attosecond pulses of light for the study of electron dynamics in matter │
3. │ Ferenc Krausz │ 2023 │ physics │ for experimental methods that generate attosecond pulses of light for the study of electron dynamics in matter │
4. │ Alain Aspect │ 2022 │ physics │ for experiments with entangled photons establishing the violation of Bell inequalities and pioneering quantum information science │
5. │ Anton Zeilinger │ 2022 │ physics │ for experiments with entangled photons establishing the violation of Bell inequalities and pioneering quantum information science │
6. │ John Clauser │ 2022 │ physics │ for experiments with entangled photons establishing the violation of Bell inequalities and pioneering quantum information science │
7. │ Giorgio Parisi │ 2021 │ physics │ for the discovery of the interplay of disorder and fluctuations in physical systems from atomic to planetary scales │
8. │ Klaus Hasselmann │ 2021 │ physics │ for the physical modelling of Earths climate quantifying variability and reliably predicting global warming │
9. │ Syukuro Manabe │ 2021 │ physics │ for the physical modelling of Earths climate quantifying variability and reliably predicting global warming │
└──────────────────┴──────┴──────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘