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

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

صورة
- - - - -

حل مشكلة اختيار ثالث اكبر قيمة فى جدول


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

#1 asd202

asd202

    عضو نشط

  • الأعضــاء
  • 405 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 03 December 2008 - 06:06 PM

هذا حل مشكلة اختيار ثالث اكبر قيمة فى جدول يدعى TABLE

SELECT MAX(A) FROM TABLE WHERE A <>(SELECT MAX(A) FROM TABLE ) AND A <>(SELECT MAX(A) FROM TABLE WHERE A <>(SELECT MAX(A) FROM TABLE ))

الحل فقط ثالث اكبر قيمة من يريد رابع اكبر قيمة
يراسلنى واعتقد الحل ممكن بنفس الطريقة بس اللى فاضى
AHMED_TANTA@HOTMAIL.COM

تم التعديل بواسطة asd202, 03 December 2008 - 06:07 PM.

begin

for i in REVERSE 1..100000

loop

message('اللهم ارحمنا');

end loop;

end;

#2 msayed.evara

msayed.evara

    مشترك

  • الأعضــاء
  • 119 مشاركة
  • الاسم الأول:Mohamed
  • اسم العائلة:Sayed
  • البـلـد: Country Flag
  • المنصب الحالي:Systems Analyst

تاريخ المشاركة 03 December 2008 - 06:53 PM

السلام عليكم
ممكن حل تانى
باستخدام rownum

ممكن تدخلوا على الرابط ده وتجدوا الحل

http://blog.lishman..../03/rownum.html

تم التعديل بواسطة msayed.evara, 03 December 2008 - 07:04 PM.

MOHAMMED SAYED
Analyst

#3 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 04 December 2008 - 12:52 AM

أدخل أيضاً على هذا الرابط >>>>>> أضغط هنا

و بالتوفيق للجميع

#4 asd202

asd202

    عضو نشط

  • الأعضــاء
  • 405 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 04 December 2008 - 09:57 AM

جزاكم الله خيرا
بس انا اقصد ثالث اعلى قيمة فقط
وليس الاول والثانى والثالث وهذا هو المقصود فى الكود تبعى
begin

for i in REVERSE 1..100000

loop

message('اللهم ارحمنا');

end loop;

end;

#5 asd202

asd202

    عضو نشط

  • الأعضــاء
  • 405 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 04 December 2008 - 10:50 AM

حل اخر
SELECT MAX(A) FROM table_name WHERE A not in((SELECT MAX(A) FROM table_name) ,
(SELECT MAX(A) FROM table_name WHERE A <>(SELECT MAX(A) FROM table_name )))


select max(a) from table_name where level=3
connect by prior a > a
group by level
مع الشكر للاخ هانى
begin

for i in REVERSE 1..100000

loop

message('اللهم ارحمنا');

end loop;

end;

#6 asd202

asd202

    عضو نشط

  • الأعضــاء
  • 405 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 06 January 2009 - 12:41 PM

SELECT MAX(col)
FROM TABLE WHERE LEVEL = 2
CONNECT BY PRIOR col > col;

begin

for i in REVERSE 1..100000

loop

message('اللهم ارحمنا');

end loop;

end;

#7 sameh bakkar

sameh bakkar

    مشرف قسم المبتدئين

  • فريق الإشراف
  • 1,019 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 07 January 2009 - 02:20 AM

و الله الحلول كتير جدا ... بارك الله فيكم يا شباب و اعزكم للاسلام
  • asd202 معجب بهذا

Sameh Bakkar

Principal Oracle Apps Techno-Functional Consultant / Oracle E-Business Suite Certified Trainer

Oracle E-Business R11 Suite Applications Workflow Certified Expert

Oracle E-Business Suite R12 HCM Certified Implementation Specialist

Oracle Certified Professional

ITIL V3 Foundation certified

Microsoft Project certified




الموقع الخاص: AppsLead | Your Honest Guide | Sameh Bakkar


#8 asd202

asd202

    عضو نشط

  • الأعضــاء
  • 405 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 10 February 2009 - 01:19 PM

SELECT * FROM(
(SELECT ROWNUM N,USER_ID FROM SM_USER ORDER BY USER_ID DESC)
)
WHERE N=5

  • asd202 معجب بهذا
begin

for i in REVERSE 1..100000

loop

message('اللهم ارحمنا');

end loop;

end;

#9 asd202

asd202

    عضو نشط

  • الأعضــاء
  • 405 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 16 March 2009 - 02:51 PM

select * from(select rownum m,user_name from (select user_name from sm_user order by user_id desc)) where m=3

begin

for i in REVERSE 1..100000

loop

message('اللهم ارحمنا');

end loop;

end;

#10 ahmed _m

ahmed _m

    مشترك

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

تاريخ المشاركة 16 March 2009 - 04:51 PM

السلام عليكم asd202
الله يجزيك خير على المعلومات المفيده

#11 noor_aboelwafa

noor_aboelwafa

    عضو

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

تاريخ المشاركة 16 March 2009 - 05:09 PM

Nth Highest value


select min(column name) from (select distinct (column_name) from table order by colunm_name desc) where rownum<n;


#12 hrs

hrs

    عضو نشط

  • الأعضــاء
  • 282 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 19 March 2009 - 01:21 PM

مافيش زي الحل الاول .. عجبتني :(

#13 TROYMAN

TROYMAN

    مشترك

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

تاريخ المشاركة 19 March 2009 - 01:59 PM

السلام عليكم...

هذا الكود باستخدام Rownum
و يكفي تعديل شرط الوير من 3 إلى 10 مثلاً للحصول على عاشر أعلى راتب

1  select p.sal from
2 (select rownum r,sal from
3 (select distinct(sal) from emp where sal is not null order by sal desc))p
4* where p.r=3
SQL> /

SAL
----------
2975


1  select p.sal from
2 (select rownum r,sal from
3 (select distinct(sal) from emp where sal is not null order by sal desc))p
4* where p.r=10
SQL> /

SAL
----------
1100


<<اللهم لا علـم لنا إلا ما علّمتنا إنك أنت العليــم الحكيــم>>
<<اللهم علّمنا ما ينفعنا و انفعنا بما علّمتنا و ازدنا علماً>>



Programmer (C#.Net,C++,ASP) & Oracle Developer


#14 vb man

vb man

    عضو

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

تاريخ المشاركة 19 March 2009 - 04:13 PM

select * from (select dense_rank() over(order by sal desc) rn,sal,empno 
from emp) where rn=3