» נושאי לימוד
» נושאי לימוד
יום חמישי 25 באפריל 2024
מציאת השורות המכילות את המקסימום של שדה מסוים בתוך קבוצה
דף ראשי  מתחילים  דוגמאות לשאילתות נפוצות  מציאת השורות המכילות את המקסימום של שדה מסוים בתוך קבוצה גרסה להדפסה

"לכל פריט, מצא את הספק(ים) עם המחיר הכי יקר."

 

נעשה זאת באמצעות שני שלבים:

  1. קבלת הרשימה של (article,maxprice).
  2. לכל פריט, קבלת השורות המתאימות בעלות המחיר המקסימלי.

זה יכול להיעשות בקלות באמצעות טבלה זמנית (temporary):

 

Mysql>CREATE TEMPORARY TABLE  tmp

-> article INT(4) UNSIGNED  ZEROFILL  DEFAULT '0000' NOT NULL,

-> price   DOUBLE(16,2)   DEFAULT '0.00'  NOT NULL;(

 

Mysql>LOCK TABLES shop read;

 

Mysql>INSERT INTO tmp

->SELECT article, MAX(price) FROM shop GROUP BY article;

 

Mysql>SELECT shop.article, dealer, shop.price FROM shop, tmp

->WHERE shop.article=tmp.article AND shop.price=tmp.price;

 

Mysql>UNLOCK TABLES;

Mysql>DROP TABLE tmp;

 

"האם ניתן לבצע זאת ע"י שאילתא אחת?"

כן, אבל רק באמצעות שימוש 'טריק' לא כל-כך יעיל:

 

Mysql>SELECT article,

 SUBSTRING ( MAX ( CONCAT (LPAD (price,6,'0'),dealer) ), 7) AS dealer,

0.00+LEFT ( MAX ( CONCAT (LPAD (price,6,'0'),dealer) ), 6) AS price

FROM   shop

GROUP BY article;

 

התוצאה:

 

article

dealer

Price

0001

B

3.99

0002

A

10.99

0003

C

1.69

0004

D

19.95

 02-04-04 / 16:26  עודכן ,  08-02-04 / 22:22  נוצר ע"י אלי אלוני  בתאריך 
 מציאת הערך המקסימלי בעמודה לקבוצה מסוימת - הקודםהבא - שימוש במשתנים 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 6