none
משכורת חציונית RRS feed

  • שאלה

  • הי,

    יש לי טבלה עם 200,000 רשומות עם משכורות של עובדים.

    על מנת למצוא את המשכורת החציונית סידרתי אותה מהמשכורת הנמוכה לגבוהה, והוצאתי את המשכורת ה-100,000. ליתר דיוק, מכיוון שמספר הרשומות הוא זוגי אז עשיתי ממוצע בין המשכורת ה-100,000 למשכורת ה-99,999. השאלה שלי היא איך אני הופך את הקוד הנראה למטה לגנרי? איך אני הופך את הקוד כך שיתאים לכל טבלה שהיא לא משנה מה מספר הרשומות?

    אם N הוא מס' השורות בטבלה אז אני רוצה שבמקום הפקודה Limit 1, 99999 יהיה Limit 1, N/2-1. ניסיתי להשתמש בפקודה Count אבל זה לא עובד עם Limit...

    select (MidTable1.median1 + MidTable2.median2)/2 AS 'Median Salary'
    from (
    SELECT max(salary) AS median1 
    FROM(
    SELECT salary 
    FROM facts_table
    ORDER by salary ASC
    LIMIT 1,99999
    ) InnerTable1)MidTable1,
    (
    SELECT max(salary) AS median2
    FROM(
    SELECT salary 
    FROM facts_table
    ORDER by salary ASC
    LIMIT 1,100000
    ) InnerTable2)MidTable2

    שבת 21 יולי 2012 16:20

תשובות

כל התגובות