grop by&distinct שאלה

מי נהר2

New member
grop by&distinct שאלה

אני צריכה לבדוק כמה טלפונים סלולרים מופיעים יותר מפעם אחת לאנשים עם שם משפחה שונה. (עבור ת"ז נתונות) מה אני עושה לא נכון? תודה רבה לעונים!
SELECT distinct`basic`.`id_last_name`.id, `communication`.`id_mobile_phone`.phone, `basic`.`id_last_name`.name FROM `communication`.`id_mobile_phone` join `basic`.`id_last_name` on `communication`.`id_mobile_phone`.id=`basic`.`id_last_name`.id where `communication`.`id_mobile_phone`.id in (28567724, 27533882, 45992435, 55796236, 33413977, 58182875, 28147680 ) GROUP BY `basic`.`id_last_name`.name,`communication`.`id_mobile_phone`.phone​
 

גרי רשף

New member
עלייך להחליט- Distinct או Group By

שניהם לא הולכים ביחד. אם Distinct - ותרי על ה-Group By. אם Group By - ותרי על ה-Distinct וב-Select כתבי את מה שמופיע ב-Group By ומה שלא מופיע- צרפי עם פונקציית צבירה כמו Max או Sum וכו'.
 

מי נהר2

New member
עשיתי כמו שכתבת אבל

אני צריכה שזה יספור טלפונים שהם משותפים לאנשים עם ת"ז שונה ושם משפחה שונה. למשל: כהן 050-1234567 1234 לוי 050-1234567 1234 זהו טלפון טלפון לא תקין מבחינתי ועבורו אני רוצה שיהיה קאונטר של 2. איך אני עושה את זה?
SELECT count(`basic`.`id_last_name`.id), `communication`.`id_mobile_phone`.phone, `basic`.`id_last_name`.name FROM `communication`.`id_mobile_phone` join `basic`.`id_last_name` on `communication`.`id_mobile_phone`.id=`basic`.`id_last_name`.id where `communication`.`id_mobile_phone`.id in (55714281 , 86913795 , 60608247 , 86095254 , 11539210 ) GROUP BY `communication`.`id_mobile_phone`.phone​
 

גרי רשף

New member
אם הבנתי אותך..

..בסוף, לאחר משפט ה-Group By, הוסיפי תנאי:
Having Count(*)=2​
 
למעלה