5.17.2
The rollup and cube Extensions of group by
For analyzing complex data, we often wish to partition data into blocks and then
calculate subtotals for these blocks. For example, we may wish to analyze sales
data by geographical region, so we want to calculate values for New England, the
Midwest, the South, etc. Such analyses are faciliatated by ORACLE’s rollup
extension of group by.
Example 5.17.10 Suppose that we need to print a report summarizing the
number of grades given in every course by every instructor. We wish to print
subtotals for every course and then a general total for all courses. This can be
done in SQL using three subqueries (each containing a group by clause) as
follows:
select cno,empno,count(grade)
from grades
group by cno,empno
union
select cno,’’,count(grade)
from grades
group by cno
union
select ’’,’’,count(grade)
from grades;
The result of this query is given below:
ขาย 5.17.2
และนามสกุลลูกบาศก์ของกลุ่ม โดยวิเคราะห์ข้อมูลที่ซับซ้อน เรามักจะต้องการแบ่งข้อมูลเป็นบล็อก และคำนวณผลรวมย่อยสำหรับ
บล็อกเหล่านี้ ตัวอย่างเช่น เราอาจจะวิเคราะห์ข้อมูลการขาย
โดยทางภูมิศาสตร์ภูมิภาค ดังนั้นเราต้องการคำนวณค่าสำหรับ New England ,
มิดเวสต์ , เกาหลีใต้ ฯลฯ การวิเคราะห์ดังกล่าวจะ faciliatated โดย Oracle เป็นส่วนขยายของกลุ่มขาย
โดยตัวอย่าง 5.17.10 สมมติว่า เราต้องการพิมพ์รายงานสรุป
จำนวนเกรดให้ทุกหลักสูตร โดยทุกวง เราต้องการพิมพ์
ผลรวมย่อยสำหรับทุกหลักสูตรแล้วทั่วไปรวมของหลักสูตรทั้งหมด นี้สามารถทำใน SQL โดยใช้ subqueries
3 ( แต่ละที่มีกลุ่มตามข้อ 1 )
เลือก CNO empno , นับ ( คะแนน )
โดยคะแนนจากกลุ่ม CNO empno
เลือก CNO , สหภาพ , ' ' ,นับจากคะแนน ( เกรด )
โดยกลุ่ม CNO
เลือก Union ' ' , ' ' นับจากคะแนน ( เกรด )
;
ผลของแบบสอบถามนี้จะได้รับด้านล่าง :
การแปล กรุณารอสักครู่..