پێشەکی بۆ GROUP BY

لە MySQLدا، کاتێک دەمانەوێت زانیارییەکان بەپێی بەها هاوبەشەکان پۆلێن بکەین، فەرمانی GROUP BY بەکاردەهێنین. ئەم فەرمانە زۆر بەسوودە کاتێک دەتەوێت بزانیت چەند جارێک یان بە چ شێوازێک داتاکان دووبارە دەبنەوە.

فەرمانی GROUP BY زۆربەی کات لەگەڵ فەرمانە ژمێریارییەکان (Aggregate Functions) وەک COUNT، SUM، AVG، MAX، و MIN بەکاردێت.

بەکارهێنانی سەرەتایی

بۆ نموونە، ئەگەر خشتەیەکمان هەبێت بە ناوی orders و بمانەوێت بزانین هەر کڕیارێک چەند داواکاری ئەنجامداوە، دەتوانین بەم شێوەیە بنووسین:

SELECT customer_id, COUNT(order_id) FROM orders GROUP BY customer_id;

لێرەدا، MySQL هەموو ئەو ڕیزانەی کە customer_id-یان وەک یەکە کۆدەکاتەوە و ژمارەی داواکارییەکانیان بۆ دەژمێرێت. هەڵەی باو کە تازەکاران دەیکەن، ئەوەیە کە ستوونێک لە SELECT بەکاردەهێنن بەبێ ئەوەی لە GROUP BY یان لەناو فەرمانێکی ژمێریاریدا بێت.

پۆلێنکردن بەپێی چەند ستوونێک

دەتوانیت زیاتر لە ستوونێک بەکاربهێنیت بۆ پۆلێنکردن. بۆ نموونە، ئەگەر بتەوێت بزانیت هەر کڕیارێک لە هەر شارێکدا چەند داواکاری هەبووە:

SELECT city, customer_id, COUNT(order_id) FROM orders GROUP BY city, customer_id;

ئەمە سەرەتا داتاکان بەپێی شار پۆلێن دەکات، پاشان لەناو هەر شارێکدا بەپێی کڕیارەکان پۆلێنیان دەکات. ئەنجامەکە لیستێک دەبێت کە تێیدا هەر کڕیارێک لە شارەکەی خۆیدا دەردەکەوێت.

بەکارهێنانی HAVING لەگەڵ GROUP BY

زۆرجار پرسیار ئەوەیە: چۆن مەرجێک دابنێین بۆ ئەو گرووپانەی دروستمان کردوون؟ بۆ ئەمە فەرمانی WHERE بەکار نایەت، بەڵکو دەبێت HAVING بەکاربهێنین.

SELECT customer_id, COUNT(order_id) FROM orders GROUP BY customer_id HAVING COUNT(order_id) > 5;

ئەم کۆدە تەنها ئەو کڕیارانە نیشان دەدات کە زیاتر لە ٥ داواکارییان ئەنجامداوە. ئەگەر WHERE بەکاربهێنیت لە جیاتی HAVING، کۆدەکە هەڵە دەدات چونکە WHERE پێش پۆلێنکردن کار دەکات.

تێبینی گرنگ: هەمیشە لەبیرت بێت کە WHERE بۆ فلتەرکردنی ڕیزەکانە پێش گروپبەندی، بەڵام HAVING بۆ فلتەرکردنی ئەنجامی گروپبەندییەکانە دوای ئەوەی پۆلێن کراون.

ڕیزبەندی فەرمانەکان

بۆ ئەوەی تووشی هەڵە نەبیت، دەبێت ئەم ڕیزبەندییە لەبیر نەکەیت:

  • SELECT
  • FROM
  • WHERE
  • GROUP BY
  • HAVING
  • ORDER BY

ئەرکی ڕاهێنان

ئێستا کاتی ئەوەیە خۆت تاقی بکەیتەوە! خشتەیەکمان هەیە بە ناوی products کە ستوونەکانی category و price-ی تێدایە. هەوڵبدە کۆدێک بنووسیت کە تێکڕای نرخی (Average) بەرهەمەکان بۆ هەر بەشێک (category) دەربخات.

ئەمانە ئەم فێرکارییەیان تەواوکردووە

1 فێرخواز تەواویان کردووە