SUMMARIZATION bis
The SUMMARIZE operator has been part of Tutorial D since its inception. With the introduction of image relations, however, that operator became logically redundant—and while there might be reasons (perhaps pedagogic ones) to retain it, the fact is that most summarizations can be more succinctly expressed by means of EXTEND.[105] Recall Example SX1 from the previous section (“For each supplier, get the supplier number and a count of the number of parts supplied”). The SUMMARIZE formulation looked like this:
SUMMARIZE SP PER ( S { SNO } ) : { PCT := COUNT ( PNO ) }Here by contrast is an equivalent EXTEND formulation:
EXTEND S { SNO } : { PCT := COUNT ( !!SP ) }(Since the combination {SNO,PNO} is a key for relvar SP, there’s no need to project the image relation on {PNO} before computing the count.) As the example suggests, EXTEND is certainly another context in which image relations make sense; in fact, they’re arguably even more useful in this context than they are in WHERE clauses.
The rest of this section consists of more examples. I’ve continued the numbering from the examples in the section IMAGE RELATIONS bis.
Example 6: For each supplier, get supplier details and total shipment quantity, taken over all shipments for the supplier in question.
EXTEND S : { TOTQ := SUM ( !!SP , QTY ) }Example 7: For each supplier, get supplier details and total, maximum, and minimum shipment quantity, taken over all shipments for the supplier in question.
EXTEND S : { TOTQ := SUM ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access