אינדקס עבור פעולות Distinct

יום שישי, אוקטובר 11, 2013

כיצד מאנדקסים טבלה עבור פעולת Distinct? ובאותה הזדמנות – מה ההבדל בין Distinct לביצוע Group By? ניצור שתי טבלאות טכניות (אין משמעות עסקית לתוכן) – אחת Heap ואחת עם Index לפי 3 העמודות שב-Distinct / Group By: If Object_ID('T_Messages','U') Is Not Null Drop Table T_Messages;   Select * Into T_Messages From sys.messages;   If Object_ID('T_Messages1','U') Is Not Null Drop Table T_Messages1; ...
אין תגובות

ביצוע Count Distinct ללא תמיכה מתאימה

יום שישי, יולי 22, 2011

נשאלתי בפורום בסיסי נתונים בתפוז כיצד לבצע Count Distinct באקסס, כלי שאינו תומך באופציה זו. אנחנו אנשי SQL Server יכולים להריץ בקלות שאילתה בסגנון של- Select Schema_id, Count(Distinct Type) Count_Dist_Type From sys.objects Group By Schema_id; שאילתה הסופרת כמה סוגים שונים של אובייקטים יש בכל סכימה (למשל- בסכימה 4=sys יש שני סוגים- INTERNAL_TABLE, SYSTEM_TABLE). אם בבוקר אחד נגלה שמישהו הזיז את ה-Count distinct שלנו וכעת עלינו...
אין תגובות

משפט Select עם Top & Distinct

יום שישי, ספטמבר 3, 2010

ניצור טבלה זמנית, ונכניס לתוכה את המספר 1 שלוש פעמים, את המספר 2 שלוש פעמים, את המספר 3 שלוש פעמים ואת המספר 4 שלוש פעמים; בסה"כ שנים עשר מספרים: Create Table #T(I Int); Go Insert Into #T Select 1 Union All Select 1 Union All Select 1 Union All Select 2 Union All Select 2 Union All Select 2 Union All Select 3 Union All Select 3 Union All Select 3 Union All Select 4 Union All Select 4 Union All Select 4; Go איזה פלט תחזיר כל אחת מהשאילתות הבאות? Select...
אין תגובות

שליפה מטבלאות המתייחסות זו לזו

יום שלישי, יולי 6, 2010

ההיכרות הראשונה שלי עם עולם בסיסי הנתונים הרלציוניים הייתה לפני כחמש עשרה שנה בקורס אקסס – באחת מגרסאותיו הראשונות. אם לפני הקורס חשבתי שאקסס זה אקסל משופר, הרי לאחר השיעור הראשון בו הראו לנו איך יוצרים טבלה, מכניסים לתוכה נתונים, ממינים ומפלטרים אותה- התחלתי לחשוש שמדובר באקסל נחות ומנוון.. רק לאחר שהראו לנו איך עושים Join בין טבלאות אמרתי בליבי "אההה.." ארוך שפירושו הוא "עכשיו אני מבין..". לזכר ימי התום האלו אני אנסה לרכז בפוסט אחד את כל הדרכים לשלוף מטבלאות תוך שהן מתייחסות זו לזו. נתחיל ביצירת שתי טבלאות לצורך ההדגמות: Use tempdb; Go If Object_Id('T_Ovdim') Is Not Null Drop Table T_Ovdim Go Create Table T_Ovdim(ID Int...