كيفية حساب السجلات الفريدة والحصول على عدد من هذه التفرد في الجدول باستخدام SQL؟
سؤال
تخيل أن لدي طاولة مثل هذا:
المعرف: المنتج: Shop_id
1: كرة السلة: 41
2: كرة القدم: 41
3: صاروخ: 45
4: السيارة: 86
5: الطائرة: 86
الآن ، هذا مثال على مركز الإنترنت الكبير ، حيث توجد متاجر تبيع لعميل واحد ، حتى يتمكن العميل من اختيار المزيد من المنتجات من كل متجر وشرائه في سلة واحدة.
ومع ذلك ، لست متأكدًا مما إذا كان هناك أي بناء جملة SQL يتيح لي ببساطة الحصول على Shop_ids فريدة من نوعها والعدد الإجمالي لمنتجات تلك المتاجر في سلة العملاء. لذلك سأحصل على شيء مثل:
يحتوي Shop 41 على منتجين
متجر 45 منتج واحد
تسوق 86 منتجين
يمكنني عمل استعلامات SQL للتغلب على الجدول لصنع نوع من ['shop_id'] ['number_of_products'] متغير من شأنه أن يخزن جميع المنتجات ، ثم "فريدة من نوعها". واحد آخر من المتاجر لبقاء بعض ما تبقى ولكن هذا يبدو أن الكثير من البرمجة النصية غير المجدية.
إذا حصلت على فكرة لطيفة وأنيقة ، من فضلك ، أخبرني.
المحلول
هذا هو بالضبط نوع الشيء الذي هي الوظائف الإجمالية ل. يمكنك عمل صف واحد من الإخراج لكل مجموعة من الصفوف في الجدول. قم بتجميعها بواسطة Shop_id وحساب عدد الصفوف الموجودة في كل مجموعة.
select shop_id, count(1) from TABLE_NAME
group by shop_id