Wednesday 7 February 2018

متوسط استعلام متوسط أوراكل


هذا هو دائم الخضرة جو سيلكو السؤال. أتجاهل منصة نظام إدارة قواعد البيانات التي يتم استخدامها. ولكن على أي حال كان جو قادرا على الإجابة قبل أكثر من 10 عاما مع سكل القياسية. جو سيلكو سكل الألغاز والأجوبة الاقتباس: أن محاولة التحديث الأخيرة تشير إلى أننا يمكن أن تستخدم المسند لبناء استعلام من شأنها أن تعطينا المتوسط ​​المتحرك: هو عمود إضافي أو نهج الاستعلام بشكل أفضل الاستعلام هو أفضل من الناحية الفنية لأن نهج أوبديت سوف إزالة قاعدة البيانات. ومع ذلك، إذا كانت البيانات التاريخية المسجلة لن تتغير وأن حساب المتوسط ​​المتحرك باهظ التكلفة، يمكنك التفكير في استخدام نهج العمود. سكل لغز الاستعلام: بكل الوسائل موحدة. كنت مجرد رمي إلى الوزن المناسب دلو اعتمادا على المسافة من نقطة الوقت الحالي. على سبيل المثال كوتاك الوزن 1 ل داتابوانتس ضمن 24hrs من داتابوانت الوزن الحالي 0.5 ل داتابوانتس ضمن 48hrsquot. هذه الحالة يهم كم داتابوانتس متتالية (مثل 6:12 صباحا و 11:48 مساء) بعيدة عن بعضها البعض A حالة استخدام يمكن أن أفكر في أن يكون محاولة لتسهيل الرسم البياني أينما داتابوانتس ليست كثيفة بما فيه الكفاية ندش مسيوج 27 مايو 15 في 22:22 أنا لست متأكدا من أن النتيجة المتوقعة (الإخراج) يظهر المتوسط ​​الكلاسيكي المتحرك (المتداول) المتوسط ​​لمدة 3 أيام. لأن، على سبيل المثال، الثلاثي الأول من الأرقام بحكم التعريف يعطي: ولكن تتوقع 4.360 ومربكة. ومع ذلك، أقترح الحل التالي، والذي يستخدم نافذة وظيفة أفغ. هذا النهج هو أكثر كفاءة (واضحة وأقل كثافة الموارد) من سيلف-جوين قدم في إجابات أخرى (وفوجئت إم أن لا أحد قد أعطى حل أفضل). ترى أن أفغ هو ملفوفة مع حالة عندما رونوم غ p. days ثم لإجبار نول s في الصفوف الأولى، حيث 3 يوم المتحرك المتوسط ​​لا معنى له. أجاب 23 فبراير 16 في 13:12 يمكننا تطبيق جو سيلكوس القذرة اليسار طريقة الانضمام الخارجي (كما ذكر أعلاه من قبل دييغو سكارافاجي) للإجابة على السؤال كما طلب منه. يولد الناتج المطلوب: أجاب يناير 9 16 في 0:33 جوابك 2017 كومة إكسهانج، وكان هناك سؤال لطيف على أوتن اليوم حول ما إذا كان هناك وظيفة أوراكل القياسية لحساب المتوسط ​​المتحرك الأسي. الجواب هو أنه لا يوجد مثل هذه الوظيفة، ولكن مع شرط النموذج، يمكنك حساب من السهل جدا. ومثاله العظيم على ما أعنيه مع عدد متغير من الحسابات على أساس القيم المحسوبة، وكتب في الجزء الثالث من البرنامج التعليمي نموذج النموذجي. قبل اليوم، لم أكن أعرف حتى ما هو المتوسط ​​المتحرك الأسي كان بالضبط. يمكنك قراءة المزيد عن ذلك هنا على ويكيبيديا أو هنا مع مثال لطيف. من الرابط الأول: المتوسط ​​المتحرك الأسي (إما)، يطبق عوامل الترجيح التي تنخفض أضعافا مضاعفة. وينخفض ​​الترجيح لكل نقطة بيانات أقدم أضعافا مضاعفة، مما يعطي أهمية أكبر للمالحظات األخيرة، مع أنه ال يزال ال يتجاهل املالحظات القديمة بالكامل. من الوصلة الثانية: صيغة حساب المتوسط ​​المتحرك الأسي هي إما X إما إما (أي إما التي يجب حسابها) C قيمة البيانات الأصلية الحالية K تمهيد ثابت P السابق إما (أول إما في النطاق الذي سيتم حسابه هو تعسفية ويمكن أن تكون قيمة البيانات الأصلية المقابلة أو في كثير من الأحيان، ومتوسط ​​متحرك بسيط قيمة K تمهيد ثابت 2 (1 ن) ويتبع هذه الصيغة مثال الذي قمت بتمديد قليلا، وذلك باستخدام هذا الجدول: السجلات من المنتج A تطابق المثال في الارتباط. أنا تتكون الأرقام من المنتج B. هنا هو الاستعلام شرط النموذج الذي ينفذ الصيغة. لاحظ كيف تترجم الصيغة مباشرة إلى قاعدة واحدة وفقط من شرط النموذج. تم تعيين ثابت تمهيد K إلى .5، استنادا إلى نافذة القيم (n) مساوية 3. التحدي: حاول هذا دون شرط نموذج ومعرفة ما إذا كان يمكنك الخروج بشيء أكثر شمولا 5 تعليقات: 11.2 الميزات المستخدمة مع دات كما (حدد المنتج 39A39 تاريخ 392009-01-0139 شهر، 10 كمية من الاتحاد المزدوج كل حدد 39A39، تاريخ 392009-02-0139، 15 من الاتحاد المزدوج كل حدد 39A39، تاريخ 392009-03-0139، 17 من الاتحاد المزدوج كل حدد 39A39، تاريخ 392009-04-0139، 20 من الاتحاد المزدوج كل اختيار 39A39، تاريخ 392009-05-0139، 22 من الاتحاد المزدوج كل حدد 39A39، تاريخ 392009-06-0139، 20 من الاتحاد المزدوج كل حدد 39A39، تاريخ 392009-07-0139، 25 من الاتحاد المزدوج كل حدد 39A39، تاريخ 392009-08-0139، 27 من الاتحاد المزدوج كل حدد 39A39، تاريخ 392009-09-0139، 30 من الاتحاد المزدوج كل حدد 39A39، تاريخ 392009-10-0139، 35 من الاتحاد المزدوج كل حدد 39A39، تاريخ 392009-11-0139 ، 37 من الاتحاد المزدوج كل اختيار 39A39، تاريخ 392009-12-0139، 40 من الاتحاد المزدوج كل حدد 39B39، تاريخ 392009-01-0139، 0 من الاتحاد المزدوج كل حدد 39B39، تاريخ 392009-02-0139، 50 من الاتحاد المزدوج كل اختيار 39B39، التاريخ 392009-03-0139، 10 من الاتحاد المزدوج كل حدد 39B39، تاريخ 392009-04-0139، 40 من الاتحاد المزدوج كل حدد 39B39، تاريخ 392009-05-0139، 15 من الاتحاد المزدوج كل حدد 39B39، تاريخ 392009-06-0139، 35 فروم الاتحاد المزدوج كل حدد 39B39، تاريخ 392009-07-0139، 30 من الاتحاد المزدوج كل حدد 39B39، تاريخ 392009-08-0139، 30 من الاتحاد المزدوج كل حدد 39B39، تاريخ 392009-09-0139، 20 من الاتحاد المزدوج كل حدد 39B39 ، تاريخ 392009-10-0139، 20 من اتحاد مزدوج كل حدد 39B39، تاريخ 392009-11-0139، 20 من اتحاد مزدوج كل حدد 39B39، تاريخ 392009-12-0139، 20 من مزدوج)، رنس ك (حدد دات. . رونومبر () أكثر (التقسيم حسب ترتيب المنتج حسب الشهر) رن -. 2 (1count () أكثر (التقسيم حسب المنتج)) k. 0.5 k من دات)، ريس (منتج، شهر، كمية، رن، x) كما (حدد r. product، r. month، r. amount، r. rn، r. amount x من رنس r حيث رن 1 ونيون آل سيليكت ns. product، ns. month، ns. amount، ns. rn، ns. k (ns. amount - es. x) es. xx من رنس نس، ريس إس حيث ns. rn es. rn 1 و ns. product إس . المنتج) حدد المنتج والشهر والمبلغ، رن، جولة (س، 3) إما من ترتيب ريس من قبل المنتج، شهر بعد حساب شكل مغلق خرجت مع التعليمات البرمجية التالية التي إذا أشبه التشويش من أي شيء شامل. والفكرة هي إنشاء مضاعفات تشغيل باستخدام تسلسل سلسلة و شمل-إيفال-فونكتيوناليتي. أشكال مغلقة من الحالات الخاصة تحتاج فقط تشغيل مبالغ. هناك حالة عامة وحالتين خاصتين أسهل بكثير: مع t1 كما (حدد المنتج والشهر والمبلغ والمبلغ سي، ورونومبر () على (التقسيم حسب ترتيب المنتج حسب الشهر) رن، --2 (1 رونومبر () أكثر من (التقسيم حسب ترتيب المنتج حسب الشهر)) كي 0.5 كي من المبيعات)، t2 كما (حدد المنتج والشهر والمبلغ، (حالة عندما رن 1 ثم 1 آخر كي نهاية سي) منظمة العفو الدولية، حالة عندما رن 1 ثم 1 آخر (1 - كي) نهاية بي من t1)، t3 كما (سيليكت المنتج، الشهر، المبلغ، منظمة العفو الدولية، زملكيري (ريبلاس (ومكونكات (بي) على (صفوف المنتج المنتج حسب الشهر الصفوف بين السابقة وغير المتداولة الصف السابق)، 39،39، 3939 ) ريتورنينغ كونتنت).getnumberval () مي فروم t2)، t4 (حدد المنتج، الشهر، الكمية، مي، (أي مي) إكسي من t3) سيليكت المنتج، الشهر، المبلغ، الجولة (مي سوم (إكسي) حسب طلب المنتج حسب الشهر الصفوف بين الصف السابق والحالي غير المنضمين)، 3) إما من t4 حالة خاصة K 0.5: مع t1 كما (حدد المنتج والشهر والمبلغ ورونومبر () (التقسيم حسب ترتيب المنتج حسب الشهر) باور (2، نفل (نوليف (r (على أساس ترتيب المنتج حسب الشهر) - 1، 0)، 1)) سي من المبيعات) حدد المنتج والشهر والمبلغ والجولة (المبلغ (سي) أكثر من (التقسيم حسب ترتيب المنتج حسب الصفوف الشهرية بين السابق غير المحدود (2، رن)، 3) إما من t1 حالة خاصة K 2 (1 i): مع t1 كما (حدد المنتج، الشهر، المبلغ، عدد مرات التشغيل) (أكثر من (التقسيم حسب ترتيب المنتج حسب الشهر) () التقسيم حسب ترتيب المنتج حسب الشهر (سي من المبيعات) حدد المنتج والشهر والمبلغ والجولة (المبلغ (سي) أكثر من (التقسيم حسب ترتيب المنتج حسب الصفوف الشهرية بين الصف السابق وغير المتجدد) 2 (رن) رن 1))، 3) إيما من t1 I39ll بعد دليل على شكل مغلق إذا كان أي شخص مهتم في ذلك. هذا هو مثال عظيم من كوتون مع سكلكوت :-) مزيج من شملكيري، ومكونكات غير الموثقة، والدالات التحليلية مع شرط النافذة. احب ذلك. على الرغم من أنها ليست شاملة مثل البديل شرط نموذج و RFu39s يتكرر مع واحد، كما قلت نفسك. ومن المؤكد، I39d ترغب في رؤية دليل على شكل مغلق. وتناولت سؤالا آخر: كيفية تحسين ثابت تمهيد سيليكت k - تمهيد ثابت. مس - يعني خطأ في مربع فروم (اختيار من مبيعات نموذج البعد حسب (المنتج رونومبر () أوفر (بارتيتيون حسب طلب المنتج في الشهر أسك) رن) التدابير (المبلغ - مبلغ المبيعات الشهر - الشهر 0 أس C 0 أس P 0 0 أس X 0 أس سي - خطأ مربع - - صف وسمات العمل - أ) صف العمل هو المنتج 39X39، رن 1 - ب) سمات العمل هي كما يلي:. 0 أس سس - سوم سي لجميع المنتجات شهر. 0 أس مس - يعني سس لجميع المنتجاتأشهر. 0 أس k - لجميع المنتجاتالمشاريع. 0 أس بريمز - قبل K39s مس لجميع المنتجات مونثس. 0 أس ديف - بين مس الحالي وما قبل. 0.1 أس دلتا - الزيادة الأولية. 0 (أس) - نقطة البداية المبدئية -) القاعدة إيتيريت (99) ونتيل (عبس (فرق) 399 لوت 0.00010) (كاني، رن أمونتف ()، كف () K39A39،1 prept39A39،1 delta39A39،1 زاني ، رن أوردر بي برودوكت، رن أسك كواليسس (K39A39،1 كف ()، كف () (1-K39A39،1) شكف ()، كف () - 1، كف ()، كف ()) برودوكت، رن شكف ()، كف () - 1 سيبرودوكت، رن باور (كف) (، كف () - Xcv ()، كف () - 1، 2) SSE39A39،1 سوم (سي) أي MSE39A39،1 سوم (سي) أي، أي 24.fref39A39،1 حالة تكرار مرة أخرى عند 0 ثم نول إلس preMSE39A39،1 - MSE39A39،1 إند preMSE39A39،1 MSE39A39،1 delta39A39،1 حالة عندما devf39A39،1 لوت 0 ثين - abs (delta39A39، 12) إلس عبس (delta39A39،1) إند. prept39A39،1 K39A39،1)) حيث المنتج 39A39 و رن 1 K مس ---------- ---------- .599999237 174.01609421 سكل للتحليل والإبلاغ معالجة نولس كما الإدخال لوظائف النافذة وظائف النافذة تطابق الدلالات نول دلالات نول لوظائف تجميع سكل. يمكن الحصول على دلالات أخرى من قبل وظائف المعرفة من قبل المستخدم، أو باستخدام ديكود أو تعبير كيس داخل وظيفة النافذة. وظائف النافذة مع الإزاحة المنطقية يمكن تحديد الإزاحة المنطقية مع الثوابت مثل رانج 10 بريسدينغ. أو تعبير يتم تقييمه إلى ثابت، أو من خلال مواصفات فاصل زمني مثل فترة زمنية تتراوح بين شهر أو أقل من سنة سابقة أو تعبير يقيم إلى فاصل زمني. مع الإزاحة المنطقية، يمكن أن يكون هناك تعبير واحد فقط في قائمة تعبير أوردر بي في الدالة، مع نوع متوافق مع نوميريك إذا كان الإزاحة رقمية أو ديت إذا تم تحديد فاصل زمني. مثال 21-7 الدالة التجميعية التراكمية فيما يلي مثال على الكميات التراكمية حسب معرف العميل بالربع في عام 1999: في هذا المثال، تحدد الدالة التحليلية سوم، لكل صف، نافذة تبدأ في بداية القسم (بوندسينغ أونبوندد ) وينتهي، افتراضيا، في الصف الحالي. هناك حاجة إلى سوم متداخلة في هذا المثال نظرا لأننا نقوم بإجراء سوم على قيمة هي نفسها سوم. وتستخدم التجميعات المتداخلة كثيرا في وظائف تجميعية تحليلية. مثال 21-8 نقل الدالة التجميعية يوضح هذا المثال للنافذة المستندة إلى الوقت للعميل المتوسط ​​المتحرك للمبيعات للشهر الحالي والشهرين السابقين: لاحظ أن الصفين الأولين لحساب المتوسط ​​المتحرك لمدة ثلاثة أشهر في تستند بيانات الإخراج إلى حجم فاصل أصغر من المحدد لأن حساب الإطار لا يمكن أن يصل إلى الماضي البيانات التي استردها الاستعلام. تحتاج إلى النظر في أحجام النوافذ المختلفة الموجودة على حدود مجموعات النتائج. وبعبارة أخرى، قد تحتاج إلى تعديل الاستعلام لتضمين ما تريده بالضبط. تتمحور الدالة الكلية حساب الفرز تكون وظائف التجميع التي تتمحور حول الصف الحالي واضحة. هذا المثال يحسب لجميع العملاء متوسط ​​متحرك متحرك للمبيعات لمدة أسبوع واحد في أواخر ديسمبر 1999. ويجد متوسط ​​إجمالي المبيعات ليوم واحد قبل الصف الحالي ويوم واحد بعد الصف الحالي بما في ذلك الصف الحالي كذلك. مثال 21-9 المركزة المركزة تستند صفتي البداية والنهاية لكل منتج تتمحور متوسط ​​الحساب المتحرك في بيانات الإخراج على يومين فقط، حيث لا يمكن أن يصل حساب الإطار إلى البيانات التي تم استرجاعها بواسطة الاستعلام. يحتاج المستخدمون إلى النظر في أحجام النوافذ المختلفة الموجودة على حدود مجموعات النتائج: قد يحتاج الاستعلام إلى تعديل. الدالات التجميعية للنوافذ في وجود النسخ المكررة يوضح المثال التالي كيفية حساب قيم مجاميع النافذة عندما تكون هناك نسخ مكررة، أي عندما يتم إرجاع صفوف متعددة لقيمة ترتيب مفردة. الاستعلام يسترد الكمية المباعة لعدة عملاء خلال نطاق زمني محدد. (على الرغم من أننا نستخدم طريقة عرض مضمنة لتحديد مجموعة البيانات الأساسية، إلا أنه ليس لها أهمية خاصة ويمكن تجاهلها.) يحدد الاستعلام نافذة متحركة يتم تشغيلها من تاريخ الصف الحالي إلى 10 أيام سابقة. لاحظ أن الكلمة الرئيسية رانج يستخدم لتعريف شرط النافذة في هذا المثال. وهذا يعني أن النافذة يمكن أن تحمل العديد من الصفوف لكل قيمة في النطاق. في هذه الحالة، هناك ثلاثة أزواج من الصفوف مع قيم تاريخ مكررة. مثال 21-10 تشغيل الدالات المجمعة مع أوفسيتس المنطقية في إخراج هذا المثال، كافة التواريخ ما عدا 6 مايو و 12 مايو عودة صفين مع التواريخ المكررة. فحص الأرقام المعلق على يمين الإخراج لنرى كيف يتم حساب القيم. لاحظ أن كل مجموعة بين قوسين تمثل القيم التي تم إرجاعها ليوم واحد. لاحظ أن هذا المثال ينطبق فقط عند استخدام الكلمة الرئيسية رانج بدلا من الكلمة الرئيسية روز. ومن المهم أيضا أن نتذكر أنه مع رانج. يمكنك فقط استخدام تعبير أوردر بي في الدالات التحليلية أوردر بي. باستخدام الكلمة الرئيسية روز، يمكنك استخدام ترتيب متعدد من خلال التعبيرات في الدالات التحليلية أوردر بي. متفاوتة حجم النافذة لكل صف هناك حالات حيث يكون من المفيد تغيير حجم نافذة لكل صف، استنادا إلى شرط محدد. على سبيل المثال، قد ترغب في جعل النافذة أكبر لبعض التواريخ وأصغر بالنسبة للآخرين. افترض أنك تريد حساب المتوسط ​​المتحرك لسعر السهم على مدى ثلاثة أيام عمل. إذا كان لديك عدد متساو من الصفوف لكل يوم لجميع أيام العمل ولم يتم تخزين أي أيام غير عمل، فيمكنك استخدام وظيفة نافذة فعلية. ومع ذلك، إذا لم يتم استيفاء الشروط المشار إليها، لا يزال بإمكانك حساب متوسط ​​متحرك باستخدام تعبير في معلمات حجم النافذة. التعبيرات في مواصفات حجم النافذة يمكن أن يتم في عدة مصادر مختلفة. يمكن أن يكون التعبير إشارة إلى عمود في جدول، مثل جدول زمني. ويمكن أيضا أن تكون الدالة التي تقوم بإرجاع الحدود المناسبة للنافذة استنادا إلى القيم في الصف الحالي. يستخدم العبارة التالية لقاعدة بيانات افتراضية لأسعار الأسهم وظيفة المعرفة من قبل المستخدم في جملة رانج لتعيين حجم النافذة: في هذا البيان، تميكي هو حقل تاريخ. هنا، فن يمكن أن تكون وظيفة بلسكل مع المواصفات التالية: 4 إذا تميكي هو الاثنين والثلاثاء إذا كان أي من الأيام السابقة هي العطل، فإنه يضبط العد بشكل مناسب. لاحظ أنه عند تحديد الإطار باستخدام رقم في دالة نافذة مع أوردر بي في عمود تاريخ، يتم تحويله ليعني عدد الأيام. هل يمكن أن تستخدم أيضا وظيفة تحويل الحرفية الفاصلة، كما نومتودسينتيرفال (فن (تميكي)، داي) بدلا من مجرد فن (تيميكي) يعني نفس الشيء. يمكنك أيضا كتابة الدالة بلسكل التي ترجع قيمة نوع بيانات إنتيرفال. وظائف التجميع النافذة مع الإزاحة المادية بالنسبة للنوافذ المعبر عنها في صفوف، يجب أن تكون تعبيرات الترتيب فريدة لإنتاج نتائج حتمية. على سبيل المثال، الاستعلام التالي ليس ديترمينيستيك لأن تيميد ليست فريدة من نوعها في هذه المجموعة النتيجة. مثال 21-11 وظائف التجميع نافذة مع إزاحة المادية طريقة واحدة لمعالجة هذه المشكلة سيكون لإضافة العمود بروديد إلى مجموعة النتيجة والنظام على حد سواء تيميد و بروديد. فيرستفالو و لاستفالو وظائف الدالة فيرستفالو و لاستفالو تسمح لك بتحديد الصفوف الأولى والأخيرة من إطار. هذه الصفوف ذات قيمة خاصة لأنها غالبا ما تستخدم كخطوط أساس في الحسابات. على سبيل المثال، مع قسم يحمل بيانات المبيعات مرتبة حسب اليوم، قد تسأل كم كان كل يوم المبيعات مقارنة مع يوم المبيعات الأول (فيرستفالو) من هذه الفترة أو قد ترغب في معرفة، لمجموعة من الصفوف في زيادة ترتيب المبيعات ، ما هي النسبة المئوية لحجم كل عملية بيع في المنطقة مقارنة بأكبر عملية بيع (لاستفالو) في المنطقة إذا تم استخدام الخيار إغنور نولس مع فيرستفالو. فإنه سيعود القيمة الأولى غير فارغة في المجموعة أو نول إذا كانت كافة القيم نول. إذا تم استخدام إغنور نولس مع لاستفالو. فإنه سيتم عرض القيمة غير فارغة الأخيرة في المجموعة أو نول إذا كانت كافة القيم نول. الخيار إغنور نولس مفيد بشكل خاص في ملء جدول المخزون بشكل صحيح. الإبلاغ عن الدالات المجمعة بعد معالجة الاستعلام، يمكن بسهولة حساب قيم التجميع مثل عدد الصفوف الناتجة أو متوسط ​​القيمة في عمود، وإتاحتها لوظائف إعداد التقارير الأخرى. يعيد الإبلاغ عن الدالات المجمعة القيمة المجمعة نفسها لكل صف في قسم. سلوكهم فيما يتعلق نولز هو نفس وظائف سكل المجمعة. بناء الجملة: بالإضافة إلى ذلك، يتم تطبيق الشروط التالية: علامة النجمة () مسموح فقط في كونت () يتم دعم ديستنكت فقط إذا كانت الدالات المجمعة المقابلة تسمح لها قيمة التعبير 1 و value2 التعبير يمكن أن يكون أي تعبير صالح يتضمن مراجع الأعمدة أو التجميعات. ويحدد بند الجزء "بتيتيون بي" المجموعات التي ستحسب فيها وظائف النافذة. إذا كان شرط بارتيتيون بي غائبا، يتم حساب الدالة على مجموعة نتائج الاستعلام بأكملها. يمكن أن تظهر وظائف إعداد التقارير فقط في جملة سيليكت أو جملة أوردر بي. وتتمثل الفائدة الرئيسية لوظائف الإبلاغ في قدرتها على إجراء تمريرات متعددة للبيانات في قالب استعلام واحد وتسريع أداء طلب البحث. الاستفسارات مثل عدد عدد الباعة مع مبيعات أكثر من 10 من مبيعات المدينة لا تتطلب الانضمام بين كتل الاستعلام منفصلة. على سبيل المثال، فكر في السؤال بالنسبة إلى كل فئة من فئات المنتجات، ابحث عن المنطقة التي حققت أقصى مبيعات فيها. يكون استعلام سكل المعادل باستخدام الدالة ماكس ريبورتينغ التجميعية: الاستعلام الداخلي مع الدالة تجميع التقارير ماكس (سوم (كوليسولد)) إرجاع: نتائج الاستعلام الكامل هي: مثال 21-12 التقارير التجميع مثال تجميع التقارير جنبا إلى جنب مع استعلامات متداخلة تمكين يمكنك الإجابة على استفسارات معقدة بكفاءة. على سبيل المثال، ماذا لو كنت تريد أن تعرف المنتجات الأكثر مبيعا في الفئات الفرعية المنتج الأكثر أهمية الخاص بك ما يلي هو الاستعلام الذي يجد 5 المنتجات مبيعا لكل فئة فرعية المنتج الذي يساهم أكثر من 20 من المبيعات ضمن فئة المنتج: راتيوتوريبورت الدالة يحسب الدالة راتيوتوريبورت نسبة قيمة إلى مجموع مجموعة من القيم. إذا تم تقييم تعبير قيمة التعبير إلى نول. راتيوتوريبورت أيضا تقييم إلى نول. ولكن يتم معاملتها على أنها صفر لحساب مجموع القيم للمقام. بناء الجملة الخاص به: في هذا، ينطبق ما يلي: إكسبر يمكن أن يكون أي تعبير صالح يتضمن مراجع الأعمدة أو التجميعات. ويحدد بند القسم بيتيتيون بي المجموعات التي يتعين حساب دالة راتيوتوريبورت عليها. إذا كان شرط بارتيتيون بي غائبا، يتم حساب الدالة على مجموعة نتائج الاستعلام بأكملها. لحساب راتيوتوريبورت من المبيعات لكل قناة، قد تستخدم بناء الجملة التالي: وظائف لاجليد وظائف لاغ و ليد مفيدة لمقارنة القيم عندما المواقف النسبية من الصفوف يمكن أن تكون معروفة بشكل موثوق. وهي تعمل من خلال تحديد عدد الصفوف التي تفصل الصف المستهدف من الصف الحالي. لأن وظائف توفر الوصول إلى أكثر من صف واحد من جدول في نفس الوقت دون الانضمام الذاتي، فإنها يمكن أن تعزز سرعة المعالجة. توفر الدالة لاغ الوصول إلى صف في إزاحة معينة قبل الوضع الحالي، وتوفر الدالة ليد الوصول إلى صف في إزاحة معينة بعد الموضع الحالي. بناء جملة لاغليد تحتوي هذه الدالات على بناء الجملة التالي: الإزاحة هي معلمة اختيارية والإعدادات الافتراضية إلى 1. الافتراضي هو معلمة اختيارية وهي القيمة التي يتم إرجاعها إذا كان الإزاحة خارج حدود الجدول أو القسم. راجع تكثيف البيانات لإعداد التقارير للحصول على معلومات توضح كيفية استخدام وظائف لاغ ليد لإجراء استعلامات مقارنة من فترة إلى أخرى على بيانات متفرقة. وظائف فيرستلاست وظائف فرستلاست المجمعة تسمح لك بترتيب مجموعة بيانات والعمل مع الصفوف الأعلى مرتبة أو أسفل المرتبة. بعد العثور على أعلى أو أسفل الصفوف المرتبة، يتم تطبيق الدالة التجميعية على أي عمود المطلوب. وهذا يعني أن فيرست لاست يتيح لك الترتيب في العمود "أ"، ولكن يمكنك إعادة نتيجة التجميع المطبق على الصفوف الأولى أو المرتبة الأخيرة من العمود B. وهذا أمر مفيد لأنه يتجنب الحاجة إلى الانضمام الذاتي أو الاستعلام الفرعي، وبالتالي تحسين الأداء. تبدأ هذه الدالة بناء على الدالة التجميعية العادية (مين. ماكس سوم أفغ كونت. فاريانس. ستديف) التي تنتج قيمة إرجاع واحدة لكل مجموعة. لتحديد الترتيب المستخدم، تقوم وظائف فيرست لاست بإضافة عبارة جديدة تبدأ بكلمة كيب. بناء جملة فيرستلاست تحتوي هذه الدالات على بناء الجملة التالي: لاحظ أن جملة أوردر بي يمكن أن تتخذ تعبيرات متعددة. فيرستلاست كمجاميع منتظمة يمكنك استخدام عائلة فيرست لاست من الركام كدالات مجمعة منتظمة. مثال 21-15 فيرستلاست مثال 1 يتيح لنا الاستعلام التالي مقارنة السعر الأدنى وسعر قائمة منتجاتنا. بالنسبة لكل فئة فرعية من المنتجات ضمن فئة الملابس الرجالية، تقوم بإرجاع ما يلي: قائمة أسعار المنتج بأقل سعر أدنى أدنى سعر أدنى سعر قائمة المنتج بأعلى سعر أدنى أعلى سعر أدنى فيرستلاست كما يتم الإبلاغ عن المجاميع يمكنك أيضا استخدام الأسرة الأولى من المجاميع كما الإبلاغ عن الوظائف الكلية. ومن الأمثلة على ذلك حساب الأشهر التي كان لها أكبر وأقل زيادة في عدد الرؤوس على مدار السنة. بناء الجملة لهذه الدالات مشابه لبناء الجملة لأي تجميع تقارير أخرى. النظر في المثال في المثال 21-15 ل فيرستلاست. ماذا لو أردنا العثور على قائمة أسعار المنتجات الفردية ومقارنتها مع قائمة أسعار المنتجات في الفئة الفرعية التي لديها أعلى وأدنى حد أدنى من الأسعار الاستعلام التالي يتيح لنا العثور على تلك المعلومات عن الفئة الفرعية دوكومنتاتيون باستخدام فيرستلاست كإبلاغ تجمعات. مثال 21-16 فيرستلاست مثال 2 باستخدام وظائف فيرست و لاست كمجاميع التقارير يجعل من السهل إدراج النتائج في الحسابات مثل هذا الراتب كنسبة مئوية من أعلى الراتب. الوظائف المئوية العكسية باستخدام الدالة كوميديست، يمكنك العثور على التوزيع التراكمي (المئوي) لمجموعة من القيم. ومع ذلك، فإن عملية عكسية (العثور على ما قيمة يحسب إلى نسبة مئوية معينة) ليس من السهل القيام به ولا محسوبة بكفاءة. للتغلب على هذه الصعوبة، تم إدخال وظائف بيرسنتيليكونت و بيرسنتيليديسك. ويمكن استخدامها على حد سواء وظائف الإبلاغ عن النوافذ وكذلك وظائف التجميع العادية. تحتاج هذه الدالات إلى مواصفات الفرز والمعلمة التي تأخذ قيمة مئوية بين 0 و 1. يتم التعامل مع مواصفات الفرز باستخدام جملة أوردر بي مع تعبير واحد. عند استخدامها كدالة تجميع طبيعية، تقوم بإرجاع قيمة واحدة لكل مجموعة مرتبة. PERCENTILECONT. وهي وظيفة مستمرة يحسبها الاستيفاء، و بيرسنتيلديسك. وهي وظيفة خطوة تفترض قيم منفصلة. مثل المجاميع الأخرى، بيرسنتيليكونت و بيرسنتيليديس تعمل على مجموعة من الصفوف في استعلام مجمعة، ولكن مع الاختلافات التالية: أنها تتطلب معلمة بين 0 و 1 (شاملة). ستؤدي معلمة محددة من هذا النطاق إلى حدوث خطأ. يجب تحديد هذه المعلمة كتعبير يتم تقييمه إلى ثابت. أنها تتطلب مواصفات نوع. مواصفات هذا النوع عبارة أوردر بي مع تعبير واحد. لا يسمح بتعبيرات متعددة. الشكل التجميعي المعياري للكلمة سينتكس إنفيرز بيرسنتيل مثال أساس نستخدم الاستعلام التالي لإرجاع 17 صف من البيانات المستخدمة في أمثلة هذا القسم: يتم حساب بيرسنتيلديسك (x) عن طريق مسح قيم كومديست في كل مجموعة حتى تجد أول واحد أكبر من أو يساوي x. حيث x هي القيمة المئوية المحددة. على سبيل المثال الاستعلام حيث بيرسنتيلديسك (0.5)، والنتيجة هي 5000، كما يلي يوضح: يتم حساب نتيجة بيرسنتيكونت الاستيفاء الخطي بين الصفوف بعد طلبها. لحساب بيرسنتيليكونت (x). نقوم أولا بحساب رقم الصف رن (1x (n-1))، حيث n هو عدد الصفوف في المجموعة و x هي القيمة المئوية المحددة. وتحسب النتيجة النهائية للدالة التجميعية باستكمال داخلي خطي بين القيم من الصفوف في الصفين كرن سييل (رن) و فرن فلور (رن). وتكون النتيجة النهائية هي: بيرسنتيليكونت (X) إذا كانت (كرن فرن رن)، ثم (قيمة التعبير من الصف في رن) (كرن - رن) (قيمة التعبير للصف في فرن) (رن - FRN) التعبير عن صف في كرن). فكر في نموذج الاستعلام السابق، حيث نحسب بيرسنتيليكونت (0.5). هنا n هو 17. رقم الصف رن (1 0.5 (n-1)) 9 لكلا المجموعتين. وضع هذا في الصيغة، (FRNCRN9)، نعيد القيمة من الصف 9 كنتيجة. مثال آخر هو، إذا كنت ترغب في حساب بيرسنتيليكونت (0.66). رقم الصف المحسوب رن (1 0.66 (n -1)) (1 0.6616) 11.67. بيرسنتيليكونت (0.66) (12-11.67) (قيمة الصف 11) (11.67-11) (قيمة الصف 12). هذه النتائج هي: يمكن أن تظهر الدالات المجمعة المئوية العكسية في عبارة هافينغ في استعلام مثل الدالات المجمعة الأخرى الموجودة. كما المجاميع التقارير يمكنك أيضا استخدام الدالات المجمعة بيرسنتيليكونت. بيرسنتيلديسك كإبلاغ عن الوظائف الكلية. عندما تستخدم كدالات تجميع التقارير، فإن بناء الجملة مشابه لتلك الموجودة في مجاميع التقارير الأخرى. يقوم هذا الاستعلام بحساب نفس الشيء (حد ائتمان متوسط ​​للعملاء في مجموعة النتائج هذه، ولكن يتم الإبلاغ عن النتيجة لكل صف في مجموعة النتائج، كما هو موضح في المخرجات التالية: قيود النسبة المئوية العكسية ل بيرسنتيلديسك، ويمكن التعبير في جملة أوردر بي من أي نوع بيانات يمكنك فرزه (رقمي، سلسلة، تاريخ، وهكذا)، ومع ذلك، يجب أن يكون التعبير في جملة أوردر بي نوع رقمي أو داتيتيم (بما في ذلك الفواصل الزمنية) لأن الاستكمال الداخلي الخطي يستخدم لتقييم بيرسنتيليكونت. إذا كان التعبير من النوع ديت، يتم تقريب النتيجة المحرف إلى أصغر وحدة للنوع، وبالنسبة لنوع ديت، سيتم تقريب القيمة المحرف إلى أقرب ثانية، لأنواع الفاصل الزمني إلى أقرب ثانية (إنتيرفال داي تو سيكوند) أو الشهر (إنتيرفال يار تو مونث)، مثل الدوال الأخرى، تتجاهل الدالات المئوية العكسية نولز في تقييم النتيجة. على سبيل المثال، عندما تريد العثور على القيمة المتوسطة في مجموعة، تتجاهل قاعدة بيانات أوراكل نول لس ويجد الوسيط بين القيم غير الفارغة. يمكنك استخدام الخيار نولز فيرست نولز لاست في جملة أوردر بي، ولكن سيتم تجاهلها كما يتم تجاهل نولس. الرتب الافتراضية ووظائف التوزيع توفر هذه الوظائف وظائف مفيدة لتحليل ما إذا كان. على سبيل المثال، ما هو ترتيب الصف، إذا تم إدراج الصف افتراضيا في مجموعة من الصفوف الأخرى هذه الأسرة من المجاميع يأخذ واحد أو أكثر من الحجج من الصف الافتراضي ومجموعة أمر من الصفوف، وإرجاع رانك. DENSERANK. بيرسنترانك أو كوميديست من الصف كما لو تم إدراجها افتراضيا في المجموعة. الترتيب الافتراضي وترتيب التوزيع هنا، يشير التعبير الثابت إلى تعبير يتم تقييمه إلى ثابت، وقد يكون هناك أكثر من تعبير واحد يتم تمريره كحجج للوظيفة. يمكن أن يحتوي عبارة أوردر بي على تعبير واحد أو أكثر يحدد ترتيب الفرز الذي سيتم بناء الترتيب عليه. ASC. DESC. نولز فيرست. ستكون خيارات نولس لاست متاحة لكل تعبير في أوردر بي. مثال 21-17 الترتيب الافتراضي والتوزيع مثال 1 باستخدام بيانات قائمة الأسعار من جدول المنتجات المستخدمة في هذا القسم، يمكنك حساب الترتيب. بيرسينترانك و كوميديست ل سترة افتراضية مع سعر 50 لكيفية تناسبها داخل كل من الفئات الفرعية سترة. الاستعلام والنتائج هي: على عكس المجاميع المئوية العكسية، قد يتخذ عبارة أوردر بي في مواصفات الفرز لوظائف الترتيب الافتراضي والتوزيع عدة تعبيرات. يجب أن يكون عدد الوسيطات والتعبيرات الواردة في عبارة أوردر هي نفسها، ويجب أن تكون الوسيطات عبارة عن تعبيرات ثابتة للنوع نفسه أو النوع المتوافق لتعبير أوردر بي المقابل. وفيما يلي مثال باستخدام وسيطتين في العديد من وظائف التصنيف الافتراضي. مثال 21-18 الترتيب الافتراضي والتوزيع مثال 2 يمكن أن تظهر هذه الدالات في جملة هافينغ من الاستعلام تماما مثل الدالات المجمعة الأخرى. لا يمكن استخدامها إما الإبلاغ عن وظائف مجمعة أو وظائف تجميع النافذة. وظائف الانحدار الخطي تدعم وظائف الانحدار تركيب خط انحدار عادي من المربعات الصغرى لمجموعة من أزواج الأرقام. يمكنك استخدامها على حد سواء وظائف مجمعة أو وظائف النافذة أو التقارير. والوظائف هي كما يلي: تطبق أوراكل الدالة على مجموعة الأزواج (e1 e2) بعد إزالة جميع الأزواج التي يكون فيها أي من E1 أو e2 خاليا. يتم تفسير E1 على أنها قيمة المتغير التابع (قيمة y)، ويتم تفسير E2 على أنه قيمة للمتغير المستقل (قيمة x). يجب أن يكون كل من التعبيرات أرقام. وتحسب دالات الانحدار في آن واحد أثناء تمريرة واحدة من خلال البيانات. وكثيرا ما يتم دمجها مع برنامج كوفاربوب. COVARSAMP. و كور. ريجركونت الدالة ريجركونت ترجع عدد أزواج عدد غير فارغة تستخدم لتناسب خط الانحدار. إذا تم تطبيقه على مجموعة فارغة (أو إذا لم تكن هناك أزواج (e1 و e2) حيث لا يكون e1 أو e2 نول)، ترجع الدالة 0. ريجرافجي و ريجرافغكس وظائف ريجرافجي و ريجرافغس تحسب متوسطات المتغير التابع والمستقل متغير خط الانحدار، على التوالي. وتحسب ريجرافجي متوسط ​​الوسيطة الأولى (e1) بعد إزالة الأزواج (e1 e2) حيث يكون أي من e1 أو e2 خاليا. وبالمثل، يحسب ريجرافغس متوسط ​​الوسيطة الثانية (e2) بعد إلغاء فارغ. ترجع الدالتان نول إذا تم تطبيقها على مجموعة فارغة. ريجرسلوب و ريجرينترسيبت الدالات تقوم الدالة ريجرسلوب بحساب منحدر خط الانحدار المجهز بأزواج غير نول (e1. e2). الدالة ريجرينتيرسيبت يحسب اعتراض y من خط الانحدار. ريجرينتيرسيبت إرجاع نول كلما المنحدر أو متوسطات الانحدار نول. REGRR2 الدالة يحسب الدالة REGRR2 معامل التحديد (عادة ما يسمى R-سكارد أو الخير المناسب) لخط الانحدار. يقوم REGRR2 بإرجاع القيم بين 0 و 1 عندما يتم تعريف خط الانحدار (ميل المنحدر ليس خاليا)، ويعود نول بخلاف ذلك. كلما كانت القيمة أقرب إلى 1، كلما كان خط الانحدار مناسبا للبيانات. ريجرسكس، ريجرسسي، و ريجرسكسي وظائف ريجرسكس. وتستخدم وظائف ريجرزي و ريجرسسي في حساب إحصاءات التشخيص المختلفة لتحليل الانحدار. بعد إزالة (e1 e2) أزواج حيث إما e1 أو e2 نول، وهذه الوظائف تجعل الحسابات التالية: أمثلة الانحدار الخطي الإحصاءات بعض الإحصاءات التشخيصية المشتركة التي تصاحب تحليل الانحدار الخطي وترد في الجدول 21-2، الإحصاءات التشخيصية المشتركة و التعبيرات . لاحظ أن هذا الإصدار وظائف جديدة تسمح لك لحساب كل هذه. الجدول 21-2 الإحصاء التشخيصي المشترك وتعبيراتهم نموذج حساب الانحدار الخطي في هذا المثال، نحسب خط الانحدار العادي المربعات الصغرى الذي يعبر عن الكمية المباعة للمنتج كدالة خطية لأسعار قائمة المنتجات. يتم تجميع الحسابات حسب قناة المبيعات. القيم سلوب. INTCPT. رسكر هي المنحدر، اعتراض، ومعامل تحديد خط الانحدار، على التوالي. القيمة كونت (العدد الصحيح) كونت هي عدد المنتجات في كل قناة تتوفر لكلا من الكمية المعروضة وبيانات قائمة الأسعار. مجموعات العناصر المتكررة بدلا من احتساب عدد مرات حدوث حدث معين (على سبيل المثال، عدد المرات التي قام فيها شخص بشراء الحليب في البقالة)، توفر العناصر المتكررة آلية لحساب عدد مرات حدوث أحداث متعددة (على سبيل المثال، عدد المرات التي قام فيها شخص بشراء كل من الحليب والحبوب معا في محل بقالة). المدخلات لعملية إينديتس المتكررة هي مجموعة من البيانات التي تمثل مجموعات من العناصر (إيديتس). ويمكن أن تكون بعض الأمثلة على مجموعات العناصر هي جميع المنتجات التي يشتريها عميل معين في رحلة واحدة إلى متجر البقالة (المعروف عادة باسم سلة السوق)، وصفحات الويب التي يدخل إليها المستخدم في جلسة واحدة، أو الخدمات المالية التي نظرا للعميل يستخدم. مفهوم مجموعة العناصر المتكررة هو العثور على تلك العناصر التي تحدث في معظم الأحيان. إذا قمت بتطبيق المشغل المتكرر-إيتمسيت على بيانات نقاط البيع لمحلات البقالة، فقد تكتشف، على سبيل المثال، أن الحليب والموز هما أكثر العناصر شيوعا في الشراء. وهكذا فقد استخدمت مجموعات متكررة في بيئات استخبارات الأعمال لسنوات عديدة، مع أكثرها شيوعا لتحليل سلة السوق في قطاع تجارة التجزئة. يتم دمج إيديسيتس المتكررة مع قاعدة البيانات، وتعمل على رأس الجداول العلائقية والوصول إليها من خلال سكل. هذا التكامل يوفر اثنين من الفوائد الرئيسية: التطبيقات التي اعتمدت في السابق على عمليات إيتمسيت المتكررة تستفيد الآن من تحسن كبير في الأداء وكذلك تنفيذ أبسط. يمكن الآن تمديد التطبيقات المستندة إلى سكل التي لم تستخدم في وقت سابق إيتميتس مجموعات المتكررة بسهولة للاستفادة من هذه الوظيفة. يتم تنفيذ تحليل إيديتسس المتكررة مع حزمة بلسكل دبمسفريكنتيتمسيتس. انظر حزم وأنواع بلسكل المرجع لمزيد من المعلومات. الدالات الإحصائية الأخرى تقدم أوراكل مجموعة من الدالات الإحصائية سكل وحزمة الإحصاءات دبمستاتفونكس. يسرد هذا القسم بعض الوظائف الجديدة جنبا إلى جنب مع بناء الجملة الأساسي. راجع حزم وأنواع بلسكل المرجع للحصول على معلومات تفصيلية حول حزمة دبمستاتفونس ومرجع قاعدة بيانات أوراكل سكل عن بناء الجملة والدلالات. إحصائيات وصفية يمكنك حساب الاحصاءات الوصفية التالية: متوسط ​​لمجموعة وضع البيانات لمجموعة بيانات يمكنك حساب الاحصاءات البارامترية التالية: معامل سبيرمانز رو معامل كندالز تاو-ب بالإضافة إلى الوظائف، هذا الإصدار يحتوي على حزمة بلسكل جديدة، DBMSSTATFUNCS. أنه يحتوي على الدالة الإحصائية الوصفية سوماري جنبا إلى جنب مع وظائف لدعم تركيب التوزيع. تلخص الدالة سوماري العمود العددي من جدول مع مجموعة متنوعة من الإحصاءات الوصفية. وظائف توزيع التوزيع خمسة تدعم العادي، موحدة، ويبول، بواسون، والتوزيعات الأسية. وظيفة ويدثبوكيت للحصول على تعبير معين، ترجع الدالة ويدثبوكيت رقم الجرافة الذي سيتم تعيين نتيجة هذا التعبير بعد تقييمه. يمكنك إنشاء الرسوم البيانية إكويدث مع هذه الوظيفة. تقسم الرسوم البيانية إكويدث مجموعات البيانات إلى دلاء حجمه الفاصل (أعلى قيمة إلى أدنى قيمة) يساوي. سيختلف عدد الصفوف التي تحتفظ بها كل مجموعة. وظيفة ذات صلة، نتيل. يخلق دلاء إكيهيت. يمكن إنشاء الرسوم البيانية إكويدث فقط لأنواع رقمية، تاريخ أو داتيتيم. لذا يجب أن تكون المعلمات الثلاثة الأولى جميع التعبيرات الرقمية أو جميع تعبيرات التاريخ. أنواع أخرى من التعبيرات غير مسموح بها. إذا كانت المعلمة الأولى نول. والنتيجة هي نول. إذا كانت المعلمة الثانية أو الثالثة نول. يتم عرض رسالة خطأ، حيث لا يمكن أن تشير قيمة نول إلى أي نقطة نهاية (أو أي نقطة) لنطاق في بعد أو قيمة رقمية. يجب أن يكون المعامل الأخير (عدد الدلاء) تعبيرا رقميا يقيم إلى قيمة عدد صحيح موجب 0، نول. أو قيمة سلبية سيؤدي إلى خطأ. وترقم الدلاء من 0 إلى (n 1). يحمل دلو 0 عدد القيم أقل من الحد الأدنى. يحمل دلو (n 1) عدد القيم أكبر من أو يساوي القيمة القصوى المحددة. ويدثبوكيت بناء الجملة يأخذ ويدثبوكيت أربعة تعبيرات كمعلمات. المعلمة الأولى هي التعبير الذي هو الرسم البياني إكوييدث ل. المعلمتان الثانية والثالثة عبارة عن تعبيرات تشير إلى نقاط النهاية للنطاق المقبول للمعلمة الأولى. المعلمة الرابعة تدل على عدد الدلاء. النظر في البيانات التالية من عملاء الجدول. والتي تظهر حدود الائتمان ل 17 عميلا. يتم تجميع هذه البيانات في الاستعلام الموضح في المثال 21-19. في الجدول العملاء. يحتوي كوستكريديليميت العمود على قيم بين 1500 و 15000، ويمكننا تعيين القيم إلى أربعة دلاء إكويدث، مرقمة من 1 إلى 4، باستخدام ويدثبوكيت (كوستكريديتليميت، 0، 20000، 4). من الناحية المثالية كل دلو هو فاصل مغلق مغلق من خط رقم حقيقي، على سبيل المثال، يتم تعيين دلو رقم 2 إلى عشرات بين 5000.0000 و 9999.9999. يشار إليها أحيانا 5000، 10000) للإشارة إلى أن 5000 يتم تضمينها في الفاصل الزمني ويتم استبعاد 10،000. ولكي تستوعب القيم الواقعة خارج النطاق 0، 000 20)، تعين قيم أقل من 0 إلى دلو تدفق داخلي معين مرقمة 0، وتخصص قيم أكبر من أو تساوي 000 20 لقاعدة دفق تجاوزية معينة تكون مرقمة 5 (دلاء نوم 1 بشكل عام). انظر الشكل 21-3 للحصول على رسم بياني يوضح كيفية تعيين الدلاء. يمكنك تحديد الحدود في الترتيب العكسي، على سبيل المثال، ويدثبوكيت (كوستكريديتليميت .0000. 0. 4). عندما يتم عكس الحدود، فإن الدلاء تكون فترات مغلقة مغلقة. في هذا المثال، يكون رقم الجرافة 1 (15000،20000، دلو رقم 2 هو (10000،15000، ورقم الجرافة 4، هو (0، 5000. سيتم ترقيم دلو الفائض 0 (20000. إنفينيتي) سيتم ترقيمها 5 (- إنفينيتي 0. إنه خطأ إذا كانت معلمة عد دلو 0 أو سلبية. يوضح الاستعلام فولوين g أرقام الجرد لحدود الائتمان في جدول العملاء لكلتا الحالتين حيث يتم تحديد الحدود بشكل منتظم أو ترتيب عكسي، ونحن نستخدم مجموعة من 0 إلى 20000. الوظائف المجمعة المعرفة من قبل المستخدم توفر أوراكل منشأة لإنشاء وظائفك الخاصة، وتسمى الوظائف المجمعة المعرفة من قبل المستخدم، وتتم كتابة هذه الوظائف بلغات البرمجة مثل بلسكل و جافا و C ، ويمكن استخدامها كدالات تحليلية أو مجاميع في وجهات نظر مادية انظر دليل مطوري بيانات خرطوشة بيانات أوراكل للحصول على مزيد من المعلومات حول بناء الجملة والقيود، وتتميز هذه الوظائف بما يلي: يمكن برمجة الوظائف المعقدة للغاية باستخدام إجراء كامل أورال اللغة. زيادة قابلية التوسع من التقنيات الأخرى عندما يتم برمجة وظائف المعرفة من قبل المستخدم للمعالجة المتوازية. يمكن معالجة أنواع بيانات الكائنات. كمثال بسيط لوظيفة تجميع المعرفة من قبل المستخدم، والنظر في الإحصاء الانحراف. يقيس هذا الحساب إذا كان لمجموعة البيانات توزيع غير متوازن حول متوسطها. وسوف اقول لكم إذا ذيل واحد من التوزيع هو أكبر بكثير من الآخر. إذا قمت بإنشاء مجمع معرفة من قبل المستخدم يسمى أودسكو وتطبيقه على بيانات حد الائتمان في المثال السابق، قد تبدو عبارة سكل والنتائج على النحو التالي: قبل بناء الدالات المجمعة المعرفة من قبل المستخدم، يجب عليك مراعاة ما إذا كان يمكن تلبية الاحتياجات الخاصة بك في سكل العادية. العديد من العمليات الحسابية المعقدة ممكنة مباشرة في سكل، خاصة باستخدام تعبير كيس. سوف البقاء مع سكل العادية تمكين التنمية أبسط، والعديد من عمليات الاستعلام بالفعل متوازية بشكل جيد في سكل. حتى المثال السابق، إحصائية الانحراف، يمكن إنشاؤها باستخدام القياسية، وإن كان مطولا، سكل. تعبيرات حالة تدعم أوراكل الآن عبارات بسيطة والبحث عن حالة. بيانات كيس مماثلة في الغرض ل ديكود البيان، ولكنها توفر المزيد من المرونة والسلطة المنطقية. They are also easier to read than traditional DECODE statements, and offer better performance as well. They are commonly used when breaking categories into buckets like age (for example, 20-29, 30-39, and so on). The syntax for simple statements is: The syntax for searched statements is: You can specify only 255 arguments and each WHEN. THEN pair counts as two arguments. For a workaround to this limit, see Oracle Database SQL Reference . Suppose you wanted to find the average salary of all employees in the company. If an employees salary is less than 2000, you want the query to use 2000 instead. Without a CASE statement, you would have to write this query as follows, In this, foo is a function that returns its input if the input is greater than 2000, and returns 2000 otherwise. The query has performance implications because it needs to invoke a function for each row. Writing custom functions can also add to the development load. Using CASE expressions in the database without PLSQL, this query can be rewritten as: Using a CASE expression lets you avoid developing custom functions and can also perform faster. Creating Histograms With User-Defined Buckets You can use the CASE statement when you want to obtain histograms with user-defined buckets (both in number of buckets and width of each bucket). The following are two examples of histograms created with CASE statements. In the first example, the histogram totals are shown in multiple columns and a single row is returned. In the second example, the histogram is shown with a label column and a single column for totals, and multiple rows are returned. Example 21-21 Histogram Example 1 Example 21-22 Histogram Example 2 Data Densification for Reporting Data is normally stored in sparse form. That is, if no value exists for a given combination of dimension values, no row exists in the fact table. However, you may want to view the data in dense form, with rows for all combination of dimension values displayed even when no fact data exist for them. For example, if a product did not sell during a particular time period, you may still want to see the product for that time period with zero sales value next to it. Moreover, time series calculations can be performed most easily when data is dense along the time dimension. This is because dense data will fill a consistent number of rows for each period, which in turn makes it simple to use the analytic windowing functions with physical offsets. Data densification is the process of converting spare data into dense form. To overcome the problem of sparsity, you can use a partitioned outer join to fill the gaps in a time series or any other dimension. Such a join extends the conventional outer join syntax by applying the outer join to each logical partition defined in a query. Oracle logically partitions the rows in your query based on the expression you specify in the PARTITION BY clause. The result of a partitioned outer join is a UNION of the outer joins of each of the partitions in the logically partitioned table with the table on the other side of the join. Note that you can use this type of join to fill the gaps in any dimension, not just the time dimension. Most of the examples here focus on the time dimension because it is the dimension most frequently used as a basis for comparisons. Partition Join Syntax The syntax for partitioned outer join extends the ANSI SQL JOIN clause with the phrase PARTITION BY followed by an expression list. The expressions in the list specify the group to which the outer join is applied. The following are the two forms of syntax normally used for partitioned outer join: Note that FULL OUTER JOIN is not supported with a partitioned outer join. Sample of Sparse Data A typi cal situation with a sparse dimension is shown in the following example, which computes the weekly sales and year-to-date sales for the product Bounce for weeks 20-30 in 2000 and 2001: In this example, we would expect 22 rows of data (11 weeks each from 2 years) if the data were dense. However we get only 18 rows because weeks 25 and 26 are missing in 2000, and weeks 26 and 28 in 2001. Filling Gaps in Data We can take the sparse data of the preceding query and do a partitioned outer join with a dense set of time data. In the following query, we alias our original query as v and we select data from the times table, which we alias as t. Here we retrieve 22 rows because there are no gaps in the series. The four added rows each have 0 as their Sales value set to 0 by using the NVL function. Note that in this query, a WHERE condition was placed for weeks between 20 and 30 in the inline view for the time dimension. This was introduced to keep the result set small. Filling Gaps in Two Dimensions N-dimensional data is typically displayed as a dense 2-dimensional cross tab of (n - 2) page dimensions. This requires that all dimension values for the two dimensions appearing in the cross tab be filled in. The following is another example where the partitioned outer join capability can be used for filling the gaps on two dimensions: In this query, the WITH sub-query factoring clause v1. summarizes sales data at the product, country, and year level. This result is sparse but users may want to see all the country, year combinations for each product. To achieve this, we take each partition of v1 based on product values and outer join it on the country dimension first. This will give us all values of country for each product. We then take that result and partition it on product and country values and then outer join it on time dimension. This will give us all time values for each product and country combination. Filling Gaps in an Inventory Table An inventory table typically tracks quantity of units available for various products. This table is sparse: it only stores a row for a product when there is an event. For a sales table, the event is a sale, and for the inventory table, the event is a change in quantity available for a product. For example, consider the following inventory table: The inventory table now has the following rows: For reporting purposes, users may want to see this inventory data differently. For example, they may want to see all values of time for each product. This can be accomplished using partitioned outer join. In addition, for the newly inserted rows of missing time periods, users may want to see the values for quantity of units column to be carried over from the most recent existing time period. The latter can be accomplished using analytic window function LASTVALUE value. Here is the query and the desired output: The inner query computes a partitioned outer join on time within each product. The inner query densifies the data on the time dimension (meaning the time dimension will now have a row for each day of the week). However, the measure column quantity will have nulls for the newly added rows (see the output in the column quantity in the following results. The outer query uses the analytic function LASTVALUE. Applying this function partitions the data by product and orders the data on the time dimension column ( timeid ). For each row, the function finds the last non-null value in the window due to the option IGNORE NULLS. which you can use with both LASTVALUE and FIRSTVALUE. We see the desired output in the column repeatedquantity in the following output: Computing Data Values to Fill Gaps Examples in previous section illustrate how to use partitioned outer join to fill gaps in one or more dimensions. However, the result sets produced by partitioned outer join have null values for columns that are not included in the PARTITION BY list. Typically, these are measure columns. Users can make use of analytic SQL functions to replace those null values with a non-null value. For example, the following q uery computes monthly totals for products 64MB Memory card and DVD-R Discs (product IDs 122 and 136) for the year 2000. It uses partitioned outer join to densify data for all months. For the missing months, it then uses the analytic SQL function AVG to compute the sales and units to be the average of the months when the product was sold. If working in SQLPlus, the following two commands will wrap the column headings for greater readability of results: Time Series Calculations on Densified Data Densificatio n is not just for reporting purpose. It also enables certain types of calculations, especially, time series calculations. Time series calculations are easier when data is dense along the time dimension. Dense data has a consistent number of rows for each time periods which in turn make it simple to use analytic window functions with physical offsets. To illustrate, lets first take the example on Filling Gaps in Data. and lets add an analytic function to that query. In the following enhanced version, we calculate weekly year-to-date sales alongside the weekly sales. The NULL values that the partitioned outer join inserts in making the time series dense are handled in the usual way: the SUM function treats them as 0s. Period-to-Period Comparison for One Time Level: Example How do we use this feature to compare values across time periods Specifically, how do we calculate a year-over-year sales comparison at the week level The following query returns on the same row, for each product, the year-to-date sales for each week of 2001 with that of 2000. Note that in this example we start with a WITH clause. This improves readability of the query and lets us focus on the partitioned outer join. If working in SQLPlus, the following command will wrap the column headings for greater readability of results: In the FROM clause of the in-line view densesales. we use a partitioned outer join of aggregate view v and time view t to fill gaps in the sales data along the time dimension. The output of the partitioned outer join is then processed by the analytic function SUM. OVER to compute the weekly year-to-date sales (the weeklyytdsales column). Thus, the view densesales computes the year-to-date sales data for each week, including those missing in the aggregate view s. The in-line view yearoveryearsales then computes the year ago weekly year-to-date sales using the LAG function. The LAG function labeled weeklyytdsalesprioryear specifies a PARTITION BY clause that pairs rows for the same week of years 2000 and 2001 into a single partition. We then pass an offset of 1 to the LAG function to get the weekly year to date sales for the prior year. The outermost query block selects data from yearoveryearsales with the condition yr 2001, and thus the query returns, for each product, its weekly year-to-date sales in the specified weeks of years 2001 and 2000. Period-to-Period Comparison for Multiple Time Levels: Example While the prior example shows us a way to create comparisons for a single time level, it would be even more useful to handle multiple time levels in a single query. For example, we could compare sales versus the prior period at the year, quarter, month and day levels. How can we create a query which performs a year-over-year comparison of year-to-date sales for all levels of our time hierarchy We will take several steps to perform this task. The goal is a single query with comparisons at the day, week, month, quarter, and year level. The steps are as follows: We will create a view called cubeprodtime. which holds a hierarchical cube of sales aggregated across times and products . Then we will create a view of the time dimension to use as an edge of the cube. The time edge, which holds a complete set of dates, will be partitioned outer joined to the sparse data in the view cubeprodtime . Finally, for maximum performance, we will create a materialized view, mvprodtime. built using the same definition as cubeprodtime . For more information regarding hierarchical cubes, see Chapter 20, SQL for Aggregation in Data Warehouses. The materialized view is defined using the following statement: Step 1 Create the hierarchical cube view The materialized view shown in the following may already exist in your system if not, create it now. If you must generate it, please note that we limit the query to just two products to keep processing time short: Because this view is limited to two products, it returns just over 2200 rows. Note that the column HierarchicalTime contains string representations of time from all levels of the time hierarchy. The CASE expression used for the HierarchicalTime column appends a marker (0, 1. ) to each date string to denote the time level of the value. A 0 represents the year level, 1 is quarters, 2 is months, and 3 is day. Note that the GROUP BY clause is a concatenated ROLLUP which specifies the rollup hierarchy for the time and product dimensions. The GROUP BY clause is what determines the hierarchical cube contents. Step 2 Create the view edgetime, which is a complete set of date values edgetime is the source for filling time gaps in the hierarchical cube using a partitioned outer join. The column HierarchicalTime in edgetime will be used in a partitioned join with the HierarchicalTime column in the view cubeprodtime. The following statement defines edgetime : Step 3 Create the materialized view mvprodtime to support faster performance The materialized view definition is a duplicate of the view cubeprodtime defined earlier. Because it is a duplicate query, references to cubeprodtime will be rewritten to use the mvprodtime materialized view. The following materialized may already exist in your system if not, create it now. If you must generate it, please note that we limit the query to just two products to keep processing time short. Step 4 Create the comparison query We have now set the stage for our comparison query. We can obtain period-to-period comparison calculations at all time levels. It requires applying analytic functions to a hierarchical cube with dense data along the time dimension. Some of the calculations we can achieve for each time level are: Sum of sales for prior period at all levels of time. Variance in sales over prior period. Sum of sales in the same period a year ago at all levels of time. Variance in sales over the same period last year. The following example performs all four of these calculations. It uses a partitioned outer join of the views cubeprodtime and edgetime to create an in-line view of dense data called densecubeprodtime. The query then uses the LAG function in the same way as the prior single-level example. The outer WHERE clause specifies time at three levels: the days of August 2001, the entire month, and the entire third quarter of 2001. Note that the last two rows of the results contain the month level and quarter level aggregations. Note: To make the results easier to read if you are using SQLPlus, the column headings should be adjusted with the following commands. The commands will fold the column headings to reduce line length: Here is the query comparing current sales to prior and year ago sales: The first LAG function ( salespriorperiod ) partitions the data on gidp. cat. subcat. prod. gidt and orders the rows on all the time dimension columns. It gets the sales value of the prior period by passing an offset of 1. The second LAG function ( salessameperiodprioryear ) partitions the data on additional columns qtrnum. monnum. and daynum and orders it on yr so that, with an offset of 1, it can compute the year ago sales for the same period. The outermost SELECT clause computes the variances. Creating a Custom Member in a Dimension: Example In many OLAP tasks, it is helpful to define custom members in a dimension. For instance, you might define a specialized time period for analyses. You can use a partitioned outer join to temporarily add a member to a dimension. Note that the new SQL MODEL clause is suitable for creating more complex scenarios involving new members in dimensions. See Chapter 22, SQL for Modeling for more information on this topic. As an example of a task, what if we want to define a new member for our time dimension We want to create a 13th member of the Month level in our time dimension. This 13th month is defined as the summation of the sales for each product in the first month of each quarter of year 2001. The solution has two steps. Note that we will build this solution using the views and tables created in the prior example. Two steps are required. First, create a view with the new member added to the appropriate dimension. The view uses a UNION ALL operation to add the new member. To query using the custom member, use a CASE expression and a partitioned outer join. Our new member for the time dimension is created with the following view: In this statement, the view timec is defined by performing a UNION ALL of the edgetime view (defined in the prior example) and the user-defined 13th month. The gidt value of 8 was chosen to differentiate the custom member from the standard members. The UNION ALL specifies the attributes for a 13th month member by doing a SELECT from the DUAL table. Note that the grouping id, column gidt. is set to 8, and the quarter number is set to 5. Then, the second step is to use an inline view of the query to perform a partitioned outer join of cubeprodtime with timec. This step creates sales data for the 13th month at each level of product aggregation. In the main query, the analytic function SUM is used with a CASE expression to compute the 13th month, which is defined as the summation of the first months sales of each quarter. The SUM function uses a CASE to limit the data to months 1, 4, 7, and 10 within each year. Due to the tiny data set, with just 2 products, the rollup values of the results are necessarily repetitions of lower level aggregations. For more realistic set of rollup values, you can include more products from the Game Console and Y Box Games subcategories in the underlying materialized view.

No comments:

Post a Comment