SELECT TOP 5 *
FROM Items_q6
category | amount |
---|---|
Chairs | 12 |
Chairs | 10 |
Chairs | 10 |
Chairs | 44 |
Chairs | 93 |
תרגום נוסחה סטטיסטית לקוד SQL
December 12, 2023
ברוכים הבאים לתרגיל השישי!
התרגיל מורכב מטבלת פריטי כלי בית והסכום שבו הם נמכרו:
הינכם מתבקשים למדוד את מקדם השונות (Coefficient of Variation) של כל קטגוריה מפריטי הבית.
הנוסחה למדידת אותו מקדם היא כדלקמן:
\[ CV = \frac{\sigma}{\mu} \]
כלומר, חלוקת סטיית התקן של הקבוצה בממוצע שלה. יש למיין את הפלט בסדר יורד של ערכי ה-CV; קטגוריות עם ערך נמוך יותר יופיעו ראשונים וכן הלאה.
התבקשם ‘לנרמל’ את עמודת הסכום בדאטה וליצור עמודה חדשה כך שכל הערכים המקוריים בכל קבוצה יהיו בטווח ערכים זהה של 0-100: הערך הכי גדול בכל קבוצה ימופה ל-100 ואילו הערך הקטן ביותר יהיה 0, וכך כל הערכים המקוריים ימופו לטווח הערכים ביניהם.
כדי לנרמל את עמודת ה-Amount, השתמשו בנוסחה הבאה:
\[ Z_i = \frac{X_i - min(x)}{max(x) - min(x)} * 100 \] כאשר:
\(Z_i\): זה הערך \(i\) המנורמל החדש
\(X_i\): הערך \(i\) שעובר נרמול
\(min(x)\): הערך המינימלי במערך \(X\)
\(max(x)\): הערך המקסימלי במערך \(X\)
שימו לב לבצע את הנרמול עבור כל קבוצה בנפרד.
נסו בחלון טקסט למטה (SQLite):
DROP TABLE IF EXISTS ITEMS_Q6;
CREATE TABLE items_q6
([category] varchar(6), [amount] int)
;
INSERT INTO items_q6
([category], [amount])
VALUES
('Chairs', 12),
('Chairs', 10),
('Chairs', 10),
('Chairs', 44),
('Chairs', 93),
('Chairs', 93),
('Chairs', 32),
('Chairs', 99),
('Chairs', 95),
('Chairs', 98),
('Chairs', 85),
('Chairs', 1),
('Chairs', 39),
('Chairs', 95),
('Chairs', 91),
('Chairs', 15),
('Chairs', 38),
('Chairs', 47),
('Chairs', 31),
('Chairs', 20),
('Tables', 80),
('Tables', 602),
('Tables', 913),
('Tables', 694),
('Tables', 241),
('Tables', 981),
('Tables', 477),
('Tables', 187),
('Tables', 111),
('Tables', 603),
('Tables', 73),
('Tables', 47),
('Tables', 74),
('Tables', 37),
('Tables', 691),
('Tables', 93),
('Tables', 487),
('Tables', 873),
('Tables', 775),
('Tables', 4),
('Sofas', 146),
('Sofas', 431),
('Sofas', 330),
('Sofas', 161),
('Sofas', 308),
('Sofas', 437),
('Sofas', 97),
('Sofas', 55),
('Sofas', 383),
('Sofas', 422),
('Sofas', 127),
('Sofas', 331),
('Sofas', 213),
('Sofas', 29),
('Sofas', 260),
('Sofas', 244),
('Sofas', 398),
('Sofas', 497),
('Sofas', 276),
('Sofas', 397),
('Plates', 50),
('Plates', 6),
('Plates', 16),
('Plates', 29),
('Plates', 2),
('Plates', 6),
('Plates', 9),
('Plates', 20),
('Plates', 3),
('Plates', 48),
('Plates', 23),
('Plates', 27),
('Plates', 46),
('Plates', 18),
('Plates', 5),
('Plates', 12),
('Plates', 9),
('Plates', 15),
('Plates', 12),
('Plates', 14),
('Cups', 2),
('Cups', 10),
('Cups', 6),
('Cups', 4),
('Cups', 2),
('Cups', 4),
('Cups', 4),
('Cups', 5),
('Cups', 10),
('Cups', 4),
('Cups', 3),
('Cups', 6),
('Cups', 4),
('Cups', 6),
('Cups', 2),
('Cups', 4),
('Cups', 2),
('Cups', 9),
('Cups', 7),
('Cups', 1)
;
שימו לב כי הפתרון מותאם ל-T-SQL ולא יעבוד כמו שהוא בתיבת SQL למעלה.
category | CV |
---|---|
Sofas | 0.5020680 |
Cups | 0.6633002 |
Chairs | 0.7032536 |
Plates | 0.8195745 |
Tables | 0.8481626 |
category | amount | amount_noramlized |
---|---|---|
Chairs | 1 | 0.000000 |
Chairs | 10 | 9.183673 |
Chairs | 10 | 9.183673 |
Chairs | 12 | 11.224490 |
Chairs | 15 | 14.285714 |
Chairs | 20 | 19.387755 |
Chairs | 31 | 30.612245 |
Chairs | 32 | 31.632653 |
Chairs | 38 | 37.755102 |
Chairs | 39 | 38.775510 |