Sobes.tech
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 BY istifadə 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.