Middle
SQL-də məlumatları necə qruplaşdırmaq olar ki, unikal dəyərləri itirməyək və təkrarlanmanı qarşısını alaq?
sobes.tech Süni İntellekt
AI-dan cavab
SQL-də məlumatları qruplaşdırmaq və eyni zamanda unikal dəyərləri təkrarlamadan saxlamaq üçün düzgün toplama funksiyalarını və qruplaşdırma açarlarını istifadə etmək vacibdir.
Əsas yanaşmalar:
GROUP BYistifadə edin, bu, qrupun unikalığını müəyyən edən sütunlar üzərində.- Digər sütunlar üçün,
MIN(),MAX(),COUNT(DISTINCT ...),STRING_AGG()(sistemə görə) kimi toplama funksiyalarını tətbiq edin, unikal və ya toplu dəyərlər əldə etmək üçün. - Əgər bir qrupda bir neçə sətirdən unikal dəyərlər əldə etmək istəyirsinizsə,
ARRAY_AGG(DISTINCT column)və ya oxşar funksiyaları istifadə edə bilərsiniz, əgər SGBD bunu dəstəkləyirsə.
Nümunə (PostgreSQL):
SELECT user_id,
ARRAY_AGG(DISTINCT product_id) AS unique_products
FROM sales
GROUP BY user_id;
Bu sorğu satışları istifadəçi üzrə qruplaşdırır və hər istifadəçi üçün təkrarlanmadan unikal məhsulların siyahısını qaytarır.
Əgər SGBD-də DISTINCT ilə toplama dəstəklənmirsə, alt sorğular və ya CTE-lərdən istifadə edə bilərsiniz, əvvəlcədən təkrarlamaları aradan qaldırmaq üçün.