לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 12-01-2006, 20:32
צלמית המשתמש של Eran
  משתמש זכר Eran Eran אינו מחובר  
 
חבר מתאריך: 27.02.02
הודעות: 4,536
שלח הודעה דרך ICQ אל Eran
בעיה בספירת רשומות

הטבלה שלי מחולקת לקבוצות וברצוני לספור את מספר הרשומות הנמצאות בכל קבוצה
כרגע יש לי רק 6 קבוצות כך שכל רשומה יכולה להשתייך לאחת מן הקבוצות מ 1-6
הרשומות הן זמניות, כלומר נוספות ונמחקות מדי כמה שעות ובשביל שיהיה לי טווח טוב אז אני מדמיין שיש לי 10000 רשומות.

מה הדרך הכי יעילה לשם פעולה זו?
6 פעמים COUNT, יצירת טבלה חדשה שכאשר נוספת\נמחקת רשומה, טבלה זו תועדכן או שמא עליי לחשוב על משהו אחר בכלל :?
_____________________________________

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/list.png]

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/?https://2010-uploaded.fresh.co.il/2010/09/21/52868411.gif,http://www.boredpanda.com/blog/wp-content/themes/mimbo2.2/images/subscribe-panda-605px.png]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 12-01-2006, 23:35
צלמית המשתמש של Eran
  משתמש זכר Eran Eran אינו מחובר  
 
חבר מתאריך: 27.02.02
הודעות: 4,536
שלח הודעה דרך ICQ אל Eran
תודה הצלחתי
בתגובה להודעה מספר 2 שנכתבה על ידי ישראל K שמתחילה ב "אם הבנתי טוב אתה צריך להשתמש..."

הטבלה שלי היא כזאת:
KVUTZA - ID
1 - 1
2 - 1
3 - 1
4 - 2
5 - 3

לא הייתי בטוח איך עושים בלי תא נוסף ל SUM (במקרה שלי כל הרשומות שם אמורות להיות שוות 1 ללא יוצא מן הכלל) ולכן פעלתי כך:
קוד:
SELECT KVUTZA, sum(KVUTZA) FROM `TAVLA` GROUP BY KVUTZA תוצאה: sum(KVUTZA) - KVUTZA 3 - 1 2 - 2 3 - 3

ומכיוון שבקבוצות 2 ו 3 זה קופץ לי ב2 ו3 אז אני מחלק בסוף את sum(KVUTZA) ב KVUTZA ואז זה סופר לי כמו שצריך.


זה יותר יעיל מלעשות 6 פעמים COUNT נכון?
_____________________________________

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/list.png]

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/?https://2010-uploaded.fresh.co.il/2010/09/21/52868411.gif,http://www.boredpanda.com/blog/wp-content/themes/mimbo2.2/images/subscribe-panda-605px.png]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 13-01-2006, 02:32
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 3 שנכתבה על ידי Eran שמתחילה ב "תודה הצלחתי"

אני מסופק אם למדת כמו שצריך או אם אף בכלל נכנסת לדף בקישור שהבאתי בהודעתי הקודמת...

יתכן שלא הבנתי אותך טוב, אבל אם הבנתי טוב את צרכיך, זה הפתרון:

נניח שיש לנו את הטבלה אם הנתונים הבאים:
קוד:
+----+-------+---------+ | id | group | name | +----+-------+---------+ | 1 | 1 | eran | | 2 | 1 | dor | | 3 | 1 | cha | | 4 | 2 | dekel | | 5 | 3 | yisrael | | 6 | 2 | dori | +----+-------+---------+

ואתה כפי שהסברת, רוצה לדעת כמה חברים יש בכל קבוצה, לכן אתה משתמש בפונקציה count המונה מספר שורות, ומבצעה הקבצה באמצעות GROUP BY על מס' הקבצוה, ולכן התוצאה תהיה כמה שורות יש בכל קבוצה, כי הפונקציה COUNT מופעלת בנפרד על כל קבוצה בלבד.

השאילתה:
קוד:
SELECT `group`, COUNT(id) as `count` FROM members GROUP BY `group`;

והתוצאה:
קוד:
+-------+-------+ | group | count | +-------+-------+ | 1 | 3 | | 2 | 2 | | 3 | 1 | +-------+-------+

הערה חשובה: תשים לב שלעיתים תחמתי את שם העמודה בתו ` (זה לא גרש רגיל, לא להתבלבל), ולעיתים לא תחמתי את שם העמודה.
הסיבה היא כי לא חובה לתחום עמודה עם התו המדובר, אך אם שם העמודה זהה ל"מילה שמורה" חובה לתחום את שם העמודה, אחרת המסד נתונים יזהה את זה כפקודה ובד"כ יודיע על שגיאה.

הפתרון האלגנטי הוא כלל לא ליצור עמודות, טבלאות או מסדי נתונים בשם של "מילה שמורה", אך אם בכל זאת תרצה, ניתן כמו בדוגמה הקודמת.

תשים לב שאחרי הפונקציה COUNT הוספתי את המילה as ואז שם כלשהוא, ולכן בתוצאות שם העמודה אינו "COUNT(id)" אלא השם שכתבתי לאחר המילה as (למיטב זכרוני לא חובה להוסיף את הפקודה as).

נערך לאחרונה ע"י ישראל K בתאריך 13-01-2006 בשעה 02:35.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 15:24

הדף נוצר ב 0.05 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר