إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

حساب المتوسط الحسابي لعدد معين من السجلات


3 رد (ردود) على هذا الموضوع

#1 أبو محمـد

أبو محمـد

    عضو

  • الأعضــاء
  • 17 مشاركة

تاريخ المشاركة 07 January 2006 - 10:13 AM

السلام عليكم ،،،
هل استطيع حساب المتوسط الحسابي لعمود معين ، بدون استخدام الشروط where .

مثلا : أرغب في الحصول على المتوسط الحسابي لـ 50 سجل لسعر إغلاق شركة معينة . لا يوجد عمود نستطيع تحديد 50 سجل منه . لذلك أريد القيام بما يشبه التالي :

اختيار السجلات المطلوبة وترتيبها حسب التاريخ .
بعد ذلك أريد فقط اختيار آخر 50 سجلا وعمل المتوسط الحسابي لها .

هل يوجد دالة تعمل ذلك أم لا . أم لا بد من اضافة حقل جديد نستخدمه لتحديد الـ 50 سجل .

#2 m_almarei

m_almarei

    عضو نشط

  • الأعضــاء
  • 461 مشاركة

تاريخ المشاركة 07 January 2006 - 11:57 AM

ممكن توضح كيف بدون الشرط where

هناك مبدأ top_N_analysis يعيدلك أعلى 50 أو أقل 50 حقل وممكن تعمل عليها AVG Func

الجاهزة بالاوراكل لكن الكود لا يحضرني الآن سارسله لك انشاء الله
قال تعالى: (وفوق كل ذي علم عليم)

قال تعالى: (وقل رب زدني علما)

--------------------------------------------------------------------------------------------
m_almarei@hotmail.com

#3 أبو محمـد

أبو محمـد

    عضو

  • الأعضــاء
  • 17 مشاركة

تاريخ المشاركة 07 January 2006 - 03:07 PM

ممكن توضح كيف بدون الشرط where

أي أني لا أريد التحكم بعدد السجلات التي يسترعها لي الاستفسار باستخدام where . أرغب التحكم بعدد السجلات المسترجعة من الاستفسار باستخدام count أو غيرها ، أي بدون اي حقل موجود في القاعدة .

مثلا الكود التالي يقوم باسترجاع أعلى 50 سجل وحساب المتوسط الحسابي لها بالاعتماد على حقل id_m
select id_comp,AVG(pr_close) from price_date  where id > ( select max(id_m) from price_date_m )- 50 GROUP BY id_comp 

أريد عمل ذلك بدون الاعتماد على الحقل id_m

#4 m_almarei

m_almarei

    عضو نشط

  • الأعضــاء
  • 461 مشاركة

تاريخ المشاركة 07 January 2006 - 04:41 PM

Select ename,sal,deptno,rownum as rank
from (select ename,sal,deptno from emp order by sal [desc])
where rownum<=50


يعيد لك أعلى 50 راتب

Select ename,sal,deptno,rownum as rank
from (select ename,sal,deptno from emp order by sal [asc])
where rownum<=50

يعيد لك أفل 50 راتب

جرب ممكن تفيدك
قال تعالى: (وفوق كل ذي علم عليم)

قال تعالى: (وقل رب زدني علما)

--------------------------------------------------------------------------------------------
m_almarei@hotmail.com