Anda di halaman 1dari 8

Contoh Studi Kasus OLAP

Dengan menggunakan Microsoft Access buat tabel dengan struktur sebagai berikut
No Nama Field Tipe Filed Size Keterangan
1 Class Text 4 Kode Kelas
2 Day Text 2 {M, T, W, Th, F, St,S}
3 Time Text 2 {1,2,3,4,5,6,7,8,9,10,11,12}
4 Enrolled Number Byte Jumlah Siswa yang terdaftar
Simpan tabel tersebut dengan nama TEnroll.
Anda tidak perlu membuat primary key pada tabel tersebut
Kemudian isi data-data sebagai berikut

Pada Slide Sesi 03-04 Data Warehouse Introduction_2014-10-07, slide 88 ada perintah untuk
menampilkan data dengan menggunakan Roll up
Perintah tersebut tidak bisa dilakukan jika menggunakan Ms. Access, namun anda bisa menggunakan
clausa UNION ALL sebagai ganti perintah with rollup. Sehingga, SQL di atas bisa diubah menjadi
SELECT
Prof, Sum(Enrolled) as NumStudents
FROM
TEnroll
GROUP BY
prof

UNION ALL SELECT


"", Sum(Enrolled) as NumStudents
FROM
TEnroll;
Dan hasilnya adalah
Pada slide 89 sebagai berikut

Hamper sama seperti rollup, perintah Wth cube juga tidak bisa digunakan pada MS. Access, namun
seperti terlihat pada slide di atas cube bisa diubah menjadi rollup, sehingga hamper sama seperti
sebelumnya kita bisa menggunakan clausa UNION ALL. SQL di atas diubah menjadi
SELECT
Day,TIme, Sum(Enrolled) as NumStudents
FROM
TEnroll
GROUP BY
Day,Time

UNION ALL
SELECT
"[NULL]",TIme, Sum(Enrolled) as NumStudents
FROM
TEnroll
GROUP BY
Time
UNION ALL
SELECT
Day,"", Sum(Enrolled) as NumStudents
FROM
TEnroll
GROUP BY
Day
UNION ALL
SELECT
"","", Sum(Enrolled) as NumStudents
FROM
TEnroll;
Dan hasilnya adalah

SQL pada slide 90 yaitu


SELECT
Day, Time, Prof, Sum(Students)
FROM
enroll
GROUP BY
day,time, prof
WITH ROLLUP
Bisa diubah menjadi
SELECT
Day,TIme, Prof, Sum(Enrolled) as NumStudents
FROM
TEnroll
GROUP BY
Day,Time,Prof

UNION ALL
SELECT
"[NULL]",Time,"[NULL]", Sum(Enrolled) as NumStudents
FROM
TEnroll
GROUP BY
Time
UNION ALL
SELECT
Day,Time,"", Sum(Enrolled) as NumStudents
FROM
TEnroll
GROUP BY
Day,Time
UNION ALL
SELECT
Day,"","", Sum(Enrolled) as NumStudents
FROM
TEnroll
GROUP BY
Day
UNION ALL
SELECT
"","","", Sum(Enrolled) as NumStudents
FROM
TEnroll
Dan hasilnya adalah
Hayoooo, benar apa salah coba…???

Selain perintah Rollup dan cube ada juga perintah pivot, contoh SQL-nya adalah
TRANSFORM Sum(TEnroll.Enrolled) AS TotOfEnrolled
SELECT TEnroll.Prof, Sum(TEnroll.Enrolled) AS SumOfEnrolled
FROM TEnroll
GROUP BY TEnroll.Prof
PIVOT TEnroll.Time;
Dan hasilnya adalah

Selain menggunakan perintah pivot, kita juga bisa memanfaatkan perintah UNION ALL untuk melakukan
hal yang sama. Sebagai contoh buat tabel dengan struktur sebagai berikut:
No Nama Field Tipe Filed Size Keterangan
1 No Number Byte Nomor Warna
2 Color Text 15 {Red, Green, Blue}
3 Shade Text 15 {Dark,Light}
Simpan tabel tersebut dengan nama TColour
Anda tidak perlu membuat primary key pada tabel tersebut
Kemudian isi data-data sebagai berikut

SQL untuk menampilkan hasil seperti pada pivot tabel adalah


SELECT color,
(SELECT COUNT(*)
FROM TColour AS T1
WHERE T0.color = T1.color AND Shade = 'Dark') AS DarkTotal,
(SELECT COUNT(*)
FROM TColour AS T2
WHERE T0.color = T2.color AND Shade = 'Light') AS LightTotal,
(SELECT COUNT(*)
FROM TColour AS T3
WHERE T0.color =T3.color) AS ColorTotal
FROM TColour T0
UNION SELECT ' Totals',
(SELECT COUNT(*)
FROM TColour
WHERE shade = 'Dark') AS GrandDarkTotal,
(SELECT COUNT(*)
FROM TColour
WHERE shade = 'Light') AS GrandLightTotal,
(SELECT COUNT(*)
FROM TColour) AS GrandTotal
FROM TColour
ORDER BY color DESC;
Dan hasilmya adalah

Untuk perintah-perintah SQL pada slide selanjutnya, silahkan anda eksplorasi sendiri ya

☺☺☺ Selamat Belajar ☺☺☺

Anda mungkin juga menyukai