הגעת למגבלת הצפייה למשתמשים שאינם רשומים באתר
  • נשמח אם תצטרפו לקהילה שלנו. הרשמה לאתר תקנה לכם את האפשרות לשאול שאלות ולהגיב לשרשורים באתר ללא כל עלות
  • טופס ההרשמה לאתר נמצא כאן למטה ולוקח פחות מ-30 שניות למלא אותו (כן, בדקנו עם סטופר 🤓)

עזרה בSQL

  • פותח/ת השרשור Philip
  • פורסם בתאריך

Philip

משתמש פעיל
575
66
נק' מוניטין:
449
575
66
יש לי DB עם 27 מניות כאשר לכל מניה יש טבלה משלה,שמות העמודות בכל טבלה זהות.
יש עמודה של תאריך (כמעט אותם תאריכים, יש מניות שלא נסחרו ביום מסויים ולכן תאריך זה לא מופיע בטבלה של אותו מניה), ויש עמודה עם מחיר הנעילה.
אני מנסה למצוא ממוצע של מחירי הנעילה של כל המניות בכל יום. כלומר, עבור תאריך 1.1.2015 יש כ 27 עמודות עם מחירי הנעילה, ואני רוצה לחשב ממוצע לעמודות האלה וכך עבור כל תאריך.

משהו נוסף שהייתי רוצה למצוא, לכל מניה לחשב את המחיר הנעילה הממוצע ולמצוא את המחיר הממוצע המקסימלי ושם המניה.

חפרתי כבר כמה ימים באינטרנט על זה ללא הצלחה. אם מישהו יודע איך עושים את זה אשמח לעזרה.

אגב,אסור לבנות טבלות חדשות, אלא להשתמש בCREATE VIEW.
 
אתה לא צריך VIEW ..

נגיד הטבלה שלך זה menayot , ויש שדות date,price,id .
SELECT id, AVG(price)
FROM menayot
GROUP BY date;

לכל העמודות שיש להן את אותו תאריך הוא לוקח את השדה של המחיר ועושה ממוצע
 
  • פותח/ת השרשור
  • #3
יש לי 27 טבלאות שונות. כל מניה בטבלה נפרדת. אם אעשה ממוצע לפי תאריך הוא יחזיר לי את העמודה של המחיר מאחר ויש רק מחיר נעילה אחד לכל תאריך.
 
אהה אוקיי פספסתי את הקטע שזה טבלאות שונות ..אולי ככה ?

SELECT id, date, average_score = AVG(price)
FROM(SELECT id, date, price FROM menia1
UNION ALL
SELECT id, price FROM menia2
UNION ALL
SELECT id, price FROM menia3
)AS subquery
GROUP BY date
 
  • פותח/ת השרשור
  • #5
חשבתי על זה בערך באותו בזמן שענית לי.
עד עכשיו עשיתי join אבל זה היה ממש מסורבל וארוך. ואז חשבתי על union, השאלה האם יש אופציה של לולאה או משהו דומה ב,sql? אם יש לי 100 טבלאות, לכתוב union 100 פעם נשמע מייגע.
 
אתה יכול לעשות לולאות עם PL, אבל נראה לי ששורה תחתונה מה שיהיה הכי מהיר זה לכתוב את אותה השליפה עבור על הטבלאות.
זה בסה"כ 27 כאלה ולא מאות. מקסימום אם אתה רוצה בשביל האתגר אתה יכול לעשות את זה עם פייטון ששוךל על SQL ולהגדיר לו את פעם את שם הטבלה.
רק שים לב באיחוד שאין לך מניות שונות עם אותו השם.

אגב - הייתי ממליץ לך ליצור VIEW שהוא בדיוק השליפה הזאת. נשמע לי הגיוני שיהיה צורך לעשות השוואות בין תפוקות של מניות שונות.
 
שימו לב! השרשור ישן: לא היו תגובות בשרשור מעל 90 יום.

ייתכן שהתוכן בשרשור כבר אינו רלוונטי ולכן עדיף לפתוח שרשור חדש.
Back
למעלה תחתית