mysql - مصفوفتين - فائدة المصفوفات في البرمجة




كيف تتضاعف هذه المصفوفة في سكل؟ (2)

  1. يعطي اسم الجدول بعد SELECT الجدول الذي تشير إليه. مفيدة بشكل رئيسي في الحالة التي يكون فيها كلا الجدولين نفس أسماء الأعمدة.

  2. سوف تقوم GROUP BY بتجميع البيانات وعرض سجل واحد لكل قيمة مصنفة. وهذا يعني، في حالتك، سوف ينتهي بك الأمر بسجل واحد فقط لكل مجموعة من أعمدة الصفوف.

الكشف الكامل، أنا مستجد في سكل

وبالنظر إلى اثنين من المصفوفات سبارز ألف وباء، وتعرف على النحو التالي:

A (row_number، column_number، فالو) و B (row_number، column_number، فالو)

لا أفهم كيف يمثل هذا الاستعلام مضاعفة المصفوفتين:

SELECT A.row_number, B.column_number, SUM(A.value * B.value)
FROM A, B
WHERE A.column_number = B.row_number
GROUP BY A.row_number, B.column_number

يكمن اللبس في بناء جملة سوم و بناء جملة غروب بي / سيليكت

لذلك لبلدي غروب بي / سيليكت الارتباك، وأنا لا أفهم لماذا تعبيرات

مطلوب .row_number و B.column_number بعد عبارة سيليكت

لماذا علينا أن نحدد أنه عندما نستخدم بالفعل سيليكت و وير؟ بالنسبة لي يبدو وكأننا نقول نريد أن سيليكت باستخدام تلك التعبيرات (A.RO_number و B.column_number) على الرغم من أننا تعطى مرة أخرى جدول من وير بالفعل. أليس من المنطقي أن أقول سيليكت *؟ أنا أفترض أن غروب بي يتطلب منك فقط كتابة التعبيرات التي يستخدمها في جملة سيليكت، ولكن لا أعرف على وجه اليقين.

بالنسبة إلى سوم، أريد فقط توضيح، سوم يستخدم فقط A.value و B.value من ما يتم إرجاعه من قبل وير الصحيح؟ خلاف ذلك، سوف تضرب كل A.value مع كل B.value.

ومن شأن توضيح أي منهما أن يكون مفيدا للغاية. شكرا لكم!


بواسطة تعريف ضرب اثنين من المصفوفات A (n، m) و B (m، p) تنتج مصفوفة C (n، p).

لذلك يجب على سكل الضرب إعادة بنية البيانات نفسها كما تم استخدامه لتخزين A و B، وهو ثلاثة أعمدة:

  • رقم الصف
  • COLUMN_NUMBER
  • القيمة

، مع قيمة واحدة لكل (صف، عمود) الجمع.

هذا هو السبب في أنك تحتاج الأولين في group by الشرط.

WHERE عبارة WHERE مستقلة عن SELECT . أولا هو المسؤول عن الحصول على السجلات الصحيحة، وثانيا للحصول على الأعمدة الصحيحة.





sum