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

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

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

שאילתת SUM על כמה עמודות + WHERE

מתוזמן נעוץ נעול הועבר תכנות
14 פוסטים 4 כותבים 315 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מנצפךמ מנותק
    מנצפךמ מנותק
    מנצפך
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי טבלה עם 3 עמודות.
    סכום A
    סכום B
    ועמודה נוספת: תאריך

    אני רוצה לעשות SUM על כל סכום A
    וכן SUM על כל סכום B, אבל רק בתנאי שהעמודה "תאריך" קטנה או שווה ל NOW.

    חשוב לי מאוד המהירות של השאילתה הזו.

    כרגע אני עושה את זה בשני שאילתות.

    האם אפשר לעשות את זה בשאילתה אחת יותר מהירה?

    חשבתי אולי לעשות IF על ה SUM של סכום B.

    זה באמת יעזור?

    יש עוד פתרונות?
    לא אכפת לי גם לשנות מעט את מבנה הטבלה.

    תודה רבה.

    nigunN clickoneC 2 תגובות תגובה אחרונה
    0
    • nigunN מנותק
      nigunN מנותק
      nigun
      השיב למנצפך ב נערך לאחרונה על ידי
      #2

      @מנצפך
      אתה צריך את הסיכום של A וB ביחד או בנפרד?
      אולי תכתוב כאן מה השאליתא שיש לך עכשיו?
      בכל מקרה בMYSQL אפשר לעשות ככה

      SELECT SUM(a) AS a_sum ,SUM(b) AS b_sum FROM `tabel` WHERE date <= NOW
      
      

      ותתרגם את זה לסוג טבלה שיש לך

      מייל: nigun@duck.com

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

        אני צריך סיכום של כל אחד בנפרד.

        אבהיר שוב, על ה SUM של A אין תנאי. אלא רק על התנאי של B. כמובן ש WHERE רגיל אני יודע לעשות.

        תגובה 1 תגובה אחרונה
        0
        • clickoneC מנותק
          clickoneC מנותק
          clickone
          השיב למנצפך ב נערך לאחרונה על ידי clickone
          #4

          @מנצפך

          השאילתא מהזיכרון, אז יכול להיות שיש טעויות 😮
          הקוד אמור להתאים ל SqlServer

          select sum(a) as sum_a, sum(if(date<=GETDATE(),1,0)) as sum_b from tbl
          

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

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

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

            אני על postgresql. אז הסינטק שונה.
            אבל העיקר המבנה.
            האם באמת זה יהיה יותר מהיר משני שאילתות? (קרוב לוודאי שכן).

            clickoneC תגובה 1 תגובה אחרונה
            0
            • clickoneC מנותק
              clickoneC מנותק
              clickone
              השיב למנצפך ב נערך לאחרונה על ידי
              #6

              @מנצפך
              בSQL SERVER אני לא בטוח.
              אני זוכר שהיה על זה דיון כאן בעבר

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

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

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

                @clickone למה שלא יהיה יותר מהיר?

                clickoneC תגובה 1 תגובה אחרונה
                0
                • clickoneC מנותק
                  clickoneC מנותק
                  clickone
                  השיב למנצפך ב נערך לאחרונה על ידי
                  #8

                  @מנצפך
                  הנה הדיון כאן
                  https://tchumim.com/topic/4789/sum-על-חלק-מהתוצאות-sql

                  שם כתבת שתבדוק ותעדכן 😛

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

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

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

                    @clickone
                    נכון. עבר זמן מאז.

                    בכל אופן לפי בדיקה מעכשיו (50K רשומות. לא הרבה).

                    לעשות 2 שאילתות לוקח בממוצע 115 ms.
                    השאילתה המשולבת לוקחת בממוצע 130 ms.

                    ברור לאיפה הכיוון נוטה. לא?

                    הבדיקה נעשתה דרך קליינט PgAdmin. אם זה משנה.

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

                      @מנצפך אמר בשאילתת SUM על כמה עמודות + WHERE:

                      לעשות 2 שאילתות לוקח בממוצע 115 ms.
                      השאילתה המשולבת לוקחת בממוצע 130 ms.

                      115ms לכל אחת או לשתיהם?

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

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

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

                        לכל אחת

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

                          לא הצלחתי להבין מה חדש בשאלה החדשה שלא נענה באשכול הישן.

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

                            @dovid
                            ייתכן שאתה צודק.
                            עבר זמן רב מאז (לפחות במושגים שלי).
                            לא זכרתי את קיום האשכול ההוא.

                            אם אתה רואה צורך, תמחק את האשכול.

                            dovidD תגובה 1 תגובה אחרונה
                            0
                            • dovidD מחובר
                              dovidD מחובר
                              dovid ניהול
                              השיב למנצפך ב נערך לאחרונה על ידי dovid
                              #14

                              @מנצפך אמר בשאילתת SUM על כמה עמודות + WHERE:

                              @dovid
                              ייתכן שאתה צודק.
                              עבר זמן רב מאז (לפחות במושגים שלי).

                              אמממ..

                              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                              בכל נושא אפשר ליצור קשר dovid@tchumim.com

                              תגובה 1 תגובה אחרונה
                              0

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

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

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