الوصف
يمكن تطبيق المُركِّب If على الدالة argMax
للعثور على قيمة arg المقابلة للقيمة العظمى لـ val في الصفوف التي يكون فيها الشرط true،
باستخدام دالة المُركِّب التجميعي argMaxIf.
تكون الدالة argMaxIf مفيدة عندما تحتاج إلى العثور على القيمة المرتبطة
بالقيمة العظمى في مجموعة بيانات، ولكن فقط في الصفوف التي تستوفي شرطًا
محددًا.
مثال على الاستخدام
في هذا المثال، سنستخدم مجموعة بيانات تجريبية لمبيعات المنتجات لتوضيح كيفية عمل
argMaxIf. سنبحث عن اسم المنتج ذي أعلى سعر، ولكن
فقط للمنتجات التي بيعت 10 مرات على الأقل.
CREATE TABLE product_sales
(
product_name String,
price Decimal32(2),
sales_count UInt32
) ENGINE = Memory;
INSERT INTO product_sales VALUES
('Laptop', 999.99, 10),
('Phone', 499.99, 15),
('Tablet', 299.99, 0),
('Watch', 1199.99, 5),
('Headphones', 79.99, 20);
SELECT argMaxIf(product_name, price, sales_count >= 10) AS most_expensive_popular_product
FROM product_sales;ستُرجع الدالة argMaxIf اسم المنتج ذي أعلى سعر
بين جميع المنتجات التي بيعَت 10 مرات على الأقل (sales_count >= 10).
في هذه الحالة، ستُرجع 'Laptop' لأنه الأعلى سعرًا (999.99)
بين المنتجات الأكثر مبيعًا.
┌─most_expensi⋯lar_product─┐
1. │ Laptop │
└──────────────────────────┘