דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. Sum על חלק מהתוצאות - SQL

Sum על חלק מהתוצאות - SQL

מתוזמן נעוץ נעול הועבר תכנות
14 פוסטים 5 כותבים 408 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • clickoneC clickone

    @מנצפך לעשות IF על העמודה השנייה
    לדוגמא,

    IF(day=1,price,0)
    

    כאשר אתה בודק אם התנאי מתאים למה שאתה רוצה, ואם כן אתה מעביר את הסכום, אחרת, אתה מחזיר אפס.
    על השדה הזה אתה עושה SUM.

    שים לב, לגבי הIF, זה תלוי מה המסד שלך.
    באקסס זה IIF, בSQL ובMYSQL זה IF
    https://www.w3schools.com/sql/func_mysql_if.asp

    מנצפךמ מנותק
    מנצפךמ מנותק
    מנצפך
    כתב ב נערך לאחרונה על ידי
    #3

    @clickone מה היעילות של IF?
    אני מדבר על טבלאות גדולות עם מאות שאילתות בדקה.

    clickoneC תגובה 1 תגובה אחרונה
    0
    • מנצפךמ מנצפך

      @clickone מה היעילות של IF?
      אני מדבר על טבלאות גדולות עם מאות שאילתות בדקה.

      clickoneC מנותק
      clickoneC מנותק
      clickone
      כתב ב נערך לאחרונה על ידי
      #4

      @מנצפך אז ברור שלכאורה הוא לא הכי יעיל בכמויות
      אולי תעשה עוד שאילתה (תצוגה) שמורה, ותחבר בינהם בJOIN

      אין טסט כמו פרודקשן.

      המייל שלי urivpn@gmail.com

      upsilon01U תגובה 1 תגובה אחרונה
      1
      • clickoneC clickone

        @מנצפך אז ברור שלכאורה הוא לא הכי יעיל בכמויות
        אולי תעשה עוד שאילתה (תצוגה) שמורה, ותחבר בינהם בJOIN

        upsilon01U מנותק
        upsilon01U מנותק
        upsilon01
        כתב ב נערך לאחרונה על ידי upsilon01
        #5

        @clickone למה זה ברור שזה לא יעיל בכמויות?

        הרי זה רק תנאי נוסף באותו לולאה
        זה לא לולאה חדש

        clickoneC תגובה 1 תגובה אחרונה
        2
        • dovidD מנותק
          dovidD מנותק
          dovid
          ניהול
          כתב ב נערך לאחרונה על ידי
          #6

          אני גם חושב שזה יעיל.

          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
          תגובה 1 תגובה אחרונה
          2
          • upsilon01U upsilon01

            @clickone למה זה ברור שזה לא יעיל בכמויות?

            הרי זה רק תנאי נוסף באותו לולאה
            זה לא לולאה חדש

            clickoneC מנותק
            clickoneC מנותק
            clickone
            כתב ב נערך לאחרונה על ידי
            #7

            @upsilon01 כי אתה עושה עליו SUM.
            ז"א, קודם אתה אוסף את הנתונים, לפני הSUM.
            עושה את הIF על כל הנתונים, גם על מה שלא נכלל בתנאי (ימים שהם לא יום ראשון בדוגמא שהוא הביא)
            ובסוף אתה עושה את הSUM על הערכים שחזרו.
            בקצת רשומות ובקשות זה בכלל לא משמעותי. אבל אם יש הרבה בקשות והרבה רשומות אני חשוב שזה טיפה יקר מבחינת ביצועים (לא בדקתי)
            השיטה השנייה שהצעתי, לעשות תצוגה שמורה, יותר יעילה עקרונית, כי קודם נעשה WHERE על הרשומות, ומגיעים רק הרשומות הרלוונטיות, ועליהם נעשה הSUM, ורק אח"כ מחברים אותה לתצוגה הראשית עם JOIN (אפשר כמובן גם עם שאילתת משנה.)

            לא בדקתי את מה שאני כותב לעומק.
            רק תחושת בטן וטיפה מנסיון שזה "נראה" רץ יותר יעיל וזריז.

            אין טסט כמו פרודקשן.

            המייל שלי urivpn@gmail.com

            S מנצפךמ 2 תגובות תגובה אחרונה
            2
            • clickoneC clickone

              @upsilon01 כי אתה עושה עליו SUM.
              ז"א, קודם אתה אוסף את הנתונים, לפני הSUM.
              עושה את הIF על כל הנתונים, גם על מה שלא נכלל בתנאי (ימים שהם לא יום ראשון בדוגמא שהוא הביא)
              ובסוף אתה עושה את הSUM על הערכים שחזרו.
              בקצת רשומות ובקשות זה בכלל לא משמעותי. אבל אם יש הרבה בקשות והרבה רשומות אני חשוב שזה טיפה יקר מבחינת ביצועים (לא בדקתי)
              השיטה השנייה שהצעתי, לעשות תצוגה שמורה, יותר יעילה עקרונית, כי קודם נעשה WHERE על הרשומות, ומגיעים רק הרשומות הרלוונטיות, ועליהם נעשה הSUM, ורק אח"כ מחברים אותה לתצוגה הראשית עם JOIN (אפשר כמובן גם עם שאילתת משנה.)

              לא בדקתי את מה שאני כותב לעומק.
              רק תחושת בטן וטיפה מנסיון שזה "נראה" רץ יותר יעיל וזריז.

              S מנותק
              S מנותק
              Shmuel754
              כתב ב נערך לאחרונה על ידי Shmuel754
              #8

              @clickone לא נכון.
              הIF אמור להיות מבוצע בשאילתת הSQL.
              אם מתאים התנאי הערך הוא הסכום, ואם לא, 0. והחישוב הוא רק על השדה המחושב שמכיל את הנתונים המחושבים.

              מה שכן שבWHERE שיכניס רק מה שהוא רוצה, ובכך ימנע משליפה מיותרת.

              clickoneC תגובה 1 תגובה אחרונה
              2
              • clickoneC clickone

                @upsilon01 כי אתה עושה עליו SUM.
                ז"א, קודם אתה אוסף את הנתונים, לפני הSUM.
                עושה את הIF על כל הנתונים, גם על מה שלא נכלל בתנאי (ימים שהם לא יום ראשון בדוגמא שהוא הביא)
                ובסוף אתה עושה את הSUM על הערכים שחזרו.
                בקצת רשומות ובקשות זה בכלל לא משמעותי. אבל אם יש הרבה בקשות והרבה רשומות אני חשוב שזה טיפה יקר מבחינת ביצועים (לא בדקתי)
                השיטה השנייה שהצעתי, לעשות תצוגה שמורה, יותר יעילה עקרונית, כי קודם נעשה WHERE על הרשומות, ומגיעים רק הרשומות הרלוונטיות, ועליהם נעשה הSUM, ורק אח"כ מחברים אותה לתצוגה הראשית עם JOIN (אפשר כמובן גם עם שאילתת משנה.)

                לא בדקתי את מה שאני כותב לעומק.
                רק תחושת בטן וטיפה מנסיון שזה "נראה" רץ יותר יעיל וזריז.

                מנצפךמ מנותק
                מנצפךמ מנותק
                מנצפך
                כתב ב נערך לאחרונה על ידי
                #9

                @clickone בהצעה שלך יש שאילתה כפולה ומיותרת.
                עדיף לעשות שאילתה אחת ואח"כ לסנן את מה שלא צריך. (ע"י ה IF).
                תחשוב שאתה מקבל את כל הרשימות ואח"כ מסנן אותם בתוכנה, ומחשב SUM.
                זה עדיף מאשר לעשות 2 שאילתות נפרדות.

                תגובה 1 תגובה אחרונה
                1
                • clickoneC מנותק
                  clickoneC מנותק
                  clickone
                  כתב ב נערך לאחרונה על ידי
                  #10

                  מישהו בדק את זה?
                  או שזה השערה?
                  אני כתבתי את התשובה שלי בהשערה. ויכול להיות מאד שאני טועה. (ויכול להיות שגם לא)
                  אם מישהו יכול לעשות בדיקה על מאות אלפי רשומות + בדיקת עומס ולומר מה יותר יעיל ומהיר אשמח.

                  אין טסט כמו פרודקשן.

                  המייל שלי urivpn@gmail.com

                  תגובה 1 תגובה אחרונה
                  1
                  • מנצפךמ מנותק
                    מנצפךמ מנותק
                    מנצפך
                    כתב ב נערך לאחרונה על ידי
                    #11

                    בהמשך אבדוק בעז"ה ואעדכן.

                    תגובה 1 תגובה אחרונה
                    1
                    • S Shmuel754

                      @clickone לא נכון.
                      הIF אמור להיות מבוצע בשאילתת הSQL.
                      אם מתאים התנאי הערך הוא הסכום, ואם לא, 0. והחישוב הוא רק על השדה המחושב שמכיל את הנתונים המחושבים.

                      מה שכן שבWHERE שיכניס רק מה שהוא רוצה, ובכך ימנע משליפה מיותרת.

                      clickoneC מנותק
                      clickoneC מנותק
                      clickone
                      כתב ב נערך לאחרונה על ידי
                      #12

                      @Shmuel754 אתה צודק. אבל הוא רוצה לעשות SUM על הכל, ובנוסף עוד SUM עם תנאי.
                      אז אין לו כאן WHERE.
                      בעצם הSQL אמור קודם לחשב את הכל, ואח"כ לרוץ לעשות SUM.
                      ולכן כתבתי מה שכתבתי.
                      ושוב, לדעתי כדאי שמישהו יעשה בדיקה ויודיענו דבר undefined

                      אין טסט כמו פרודקשן.

                      המייל שלי urivpn@gmail.com

                      תגובה 1 תגובה אחרונה
                      0
                      • מנצפךמ מנותק
                        מנצפךמ מנותק
                        מנצפך
                        כתב ב נערך לאחרונה על ידי
                        #13

                        @clickone אני רוצה את שני ה SUM עם Where!

                        תגובה 1 תגובה אחרונה
                        0
                        • S מנותק
                          S מנותק
                          Shmuel754
                          כתב ב נערך לאחרונה על ידי
                          #14
                          פוסט זה נמחק!
                          תגובה 1 תגובה אחרונה
                          0
                          תגובה
                          • תגובה כנושא
                          התחברו כדי לפרסם תגובה
                          • מהישן לחדש
                          • מהחדש לישן
                          • הכי הרבה הצבעות


                          בא תתחבר לדף היומי!
                          • התחברות

                          • אין לך חשבון עדיין? הרשמה

                          • התחברו או הירשמו כדי לחפש.
                          • פוסט ראשון
                            פוסט אחרון
                          0
                          • דף הבית
                          • קטגוריות
                          • פוסטים אחרונים
                          • משתמשים
                          • חיפוש
                          • חוקי הפורום