do_demo.sql

This page documents the preview version (v2.21). Preview includes features under active development and is for development and testing only. For production, use the stable version (v2024.1). To learn more, see Versioning.

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