Save this script as do_demo.sql
.
-- Uses table t4.
-- Once you've created it, you can run this script time and again using
-- for example, a different number of histogran buckets or a
-- different number of buckts for the analyses done by percent_rank(),
-- cum_dist(), and ntile().
--------------------------------------------------------------------------------
-- STEP ZERO
------------
-- Get a clean start.
\i do_clean_start.sql
--------------------------------------------------------------------------------
-- STEP ONE
------------
-- Create a function to report some useful overall measures of t4
-- and run it, spooling the output.
\i cr_show_t4.sql
\o reports/show_t4.txt
select t as "Some useful overall measures of t4."
from show_t4();
\o
\i cr_dp_views.sql
\i cr_pr_cd_equality_report.sql
\o reports/dp_pr_cd_equality_report.txt
select * from pr_cd_equality_report(0.50);
\t on
select * from pr_cd_equality_report(0.10);
select * from pr_cd_equality_report(0.05);
select * from pr_cd_equality_report(0.01);
\t off
\o
\i cr_int_views.sql
\o reports/int_pr_cd_equality_report.txt
select * from pr_cd_equality_report(0.50);
\t on
select * from pr_cd_equality_report(0.10);
select * from pr_cd_equality_report(0.05);
select * from pr_cd_equality_report(0.01);
\t off
\o
--------------------------------------------------------------------------------
-- STEP TWO
------------
-- Create a function to visualize the data as a histogram.
-- This relies on the function bucket().
-- Run it, spooling the output.
-- Choose one, then the other, of these two methods to
-- demonstrate that they produce identical results.
-- \i cr_bucket_using_width_bucket.sql
\i cr_bucket_dedicated_code.sql
\i do_assert_bucket_ok.sql
\i cr_histogram.sql
\o reports/dp_histogram.txt
\t on
select * from histogram(50, 100);
\t off
\o
--------------------------------------------------------------------------------
-- STEP THREE
-------------
-- Compare the bucket allocation produced by ntile(), percent_rank(),
-- and cume_dist() acting on the double precision column dp_score.
\i cr_do_ntile.sql
\i cr_do_percent_rank.sql
\i cr_do_cume_dist.sql
\i cr_dp_views.sql
\i do_populate_results.sql
\o reports/dp_results.txt
\i do_report_results.sql
\o
\o reports/compare_dp_results.txt
\i do_compare_dp_results.sql
\o
-- STEP FOUR
-------------
-- Compare the bucket allocation produced by ntile(), percent_rank(),
-- and cume_dist() acting on the int column int_score.
\i cr_int_views.sql
\i do_populate_results.sql
\o reports/int_results.txt
\i do_report_results.sql
\o