DISTINCT לחלק מהעמודות

sarabara

New member
DISTINCT לחלק מהעמודות

הי אני רוצה לעשות משפט בסגנון כזה
select rownum, code, distinct(description) d
from table1
אני יודעת שמה שכתבתי לא נכון תחבירית, אבל כתבתי כי אני רוצה להבהיר את בקשתי,
אני רוצה לשלוף נתונים כאשר רק שדה אחד (DESCRIPTION) אני רוצה שלא יהיה בו כפילות.
אם אני שמה את הDISTINCT על כל השורה זה לא עוזר לי כי הROWNUM ישר עושה שכל שורה יחודית מחברתה.

יש פיתרון?
 
יש בזה בעיה לוגית

ומה קורה אם כן יש כפילות בטבלה באותה עמודה. מה הוא ידפיס ב-code, הרי יכול להיות כמה ערכית שונים עבור descripition מסוים.
 

pitoach

New member
קודם כל נתחיל מכך שתמיד יש פתרון!! ועתה נעבור

אל האפיון כי כמו שכתב הפרעתאישיותגבולית יש כאן בעיה לךוגית וצריך לאפיין מה בדיוק אתה רוצה לקבל בכל מצב.

אם למשל אתה רוצה לקבל את הרשומה הראשונה תמיד במקרה של כפילות של השדה הייחודי אז אתה יכול לעבוד עם פונקציות חלון כמו RANK או ROW_NUMBER על מנת למספר את העמודה ממנה רוצים לקבל נתונים ייחודיים. אחר כך ניתן לבחור רק את הנתונים שדורגו במיקום 1 ולכן קיבלת את כל הרשומות הראשונות בכל נתון ייחודי של עמודה description הייחודית שלך
 

גרי רשף

New member
אפשר לעשות Group By על Description

על RowNum עלייך להחליט בעצמך מה להראות:
הערך המינימלי? המקסימלי?
סכום הערכים?
ממוצע הערכים?
מספר הערכים?
משהו אחר?
לכל אפשרות יש להתאים את פונקציית האגרגציה המתאימה.
 
למעלה