import file=tpch_schema
----

import file=tpch_stats
----

# --------------------------------------------------
# Q12
# Shipping Modes and Order Priority
# Determines whether selecting less expensive modes of shipping is negatively
# affecting the critical-priority orders by causing more parts to be received by
# customers after the committed date.
#
# Counts, by ship mode, for lineitems actually received by customers in a given
# year, the number of lineitems belonging to orders for which the l_receiptdate
# exceeds the l_commitdate for two different specified ship modes. Only
# lineitems that were actually shipped before the l_commitdate are considered.
# The late lineitems are partitioned into two groups, those with priority URGENT
# or HIGH, and those with a priority other than URGENT or HIGH.
# --------------------------------------------------
stats-quality database=tpch set=save_tables_prefix=q12
SELECT
    l_shipmode,
    sum(CASE
        WHEN o_orderpriority = '1-URGENT'
            OR o_orderpriority = '2-HIGH'
            THEN 1
        ELSE 0
    END) AS high_line_count,
    sum(CASE
        WHEN o_orderpriority <> '1-URGENT'
            AND o_orderpriority <> '2-HIGH'
            THEN 1
        ELSE 0
    END) AS low_line_count
FROM
    orders,
    lineitem
WHERE
    o_orderkey = l_orderkey
    AND l_shipmode IN ('MAIL', 'SHIP')
    AND l_commitdate < l_receiptdate
    AND l_shipdate < l_commitdate
    AND l_receiptdate >= DATE '1994-01-01'
    AND l_receiptdate < DATE '1994-01-01' + INTERVAL '1' YEAR
GROUP BY
    l_shipmode
ORDER BY
    l_shipmode;
----
----
sort
 ├── save-table-name: q12_sort_1
 ├── columns: l_shipmode:26(char!null) high_line_count:31(decimal!null) low_line_count:33(decimal!null)
 ├── stats: [rows=2, distinct(26)=2, null(26)=0, distinct(31)=2, null(31)=0, distinct(33)=2, null(33)=0]
 ├── key: (26)
 ├── fd: (26)-->(31,33)
 ├── ordering: +26
 └── group-by (hash)
      ├── save-table-name: q12_group_by_2
      ├── columns: l_shipmode:26(char!null) sum:31(decimal!null) sum:33(decimal!null)
      ├── grouping columns: l_shipmode:26(char!null)
      ├── stats: [rows=2, distinct(26)=2, null(26)=0, distinct(31)=2, null(31)=0, distinct(33)=2, null(33)=0]
      ├── key: (26)
      ├── fd: (26)-->(31,33)
      ├── project
      │    ├── save-table-name: q12_project_3
      │    ├── columns: column30:30(int!null) column32:32(int!null) l_shipmode:26(char!null)
      │    ├── stats: [rows=29610.71, distinct(26)=2, null(26)=0, distinct(30)=5, null(30)=0, distinct(32)=5, null(32)=0]
      │    ├── inner-join (lookup orders)
      │    │    ├── save-table-name: q12_lookup_join_4
      │    │    ├── columns: o_orderkey:1(int!null) o_orderpriority:6(char!null) l_orderkey:12(int!null) l_shipdate:22(date!null) l_commitdate:23(date!null) l_receiptdate:24(date!null) l_shipmode:26(char!null)
      │    │    ├── key columns: [12] = [1]
      │    │    ├── lookup columns are key
      │    │    ├── stats: [rows=29610.71, distinct(1)=29397.4, null(1)=0, distinct(6)=5, null(6)=0, distinct(12)=29397.4, null(12)=0, distinct(22)=2525.98, null(22)=0, distinct(23)=2465.98, null(23)=0, distinct(24)=365, null(24)=0, distinct(26)=2, null(26)=0]
      │    │    ├── fd: (1)-->(6), (1)==(12), (12)==(1)
      │    │    ├── select
      │    │    │    ├── save-table-name: q12_select_5
      │    │    │    ├── columns: l_orderkey:12(int!null) l_shipdate:22(date!null) l_commitdate:23(date!null) l_receiptdate:24(date!null) l_shipmode:26(char!null)
      │    │    │    ├── stats: [rows=29610.71, distinct(12)=29397.4, null(12)=0, distinct(22)=2526, null(22)=0, distinct(23)=2466, null(23)=0, distinct(24)=365, null(24)=0, distinct(26)=2, null(26)=0, distinct(24,26)=730, null(24,26)=0]
      │    │    │    │   histogram(24)=  0     94.925     797.26     132.88     816.24     132.88     835.22     151.86     835.22     94.925     854.2     132.88     911.17     37.957     835.22     113.9      835.22     132.88     873.18     94.925     854.2     94.925     873.18     151.86     911.17     37.957     911.17     37.957     854.2     75.915     911.17     18.979     835.22     132.88     911.17     75.915     911.17     37.957     854.2     75.915     892.19     56.936     854.2     94.925     911.17     37.957     816.24     113.9      911.17     151.86     835.22     113.9      892.19     37.957     873.18     94.925     892.19     94.925     873.18     132.88     854.2     94.925     622.63     77.828
      │    │    │    │                 <--- '1994-01-01' -------- '1994-01-13' -------- '1994-01-25' -------- '1994-02-06' -------- '1994-02-18' ------- '1994-03-02' -------- '1994-03-15' -------- '1994-03-28' -------- '1994-04-12' -------- '1994-04-23' ------- '1994-05-08' -------- '1994-05-18' -------- '1994-05-30' -------- '1994-06-11' ------- '1994-06-20' -------- '1994-06-30' -------- '1994-07-10' -------- '1994-07-23' -------- '1994-08-05' ------- '1994-08-15' -------- '1994-08-29' ------- '1994-09-09' -------- '1994-09-21' -------- '1994-09-30' -------- '1994-10-12' -------- '1994-10-22' -------- '1994-11-01' -------- '1994-11-12' -------- '1994-11-27' -------- '1994-12-11' ------- '1994-12-22' -------- '1994-12-31'
      │    │    │    │   histogram(26)=  0  14805   0  14805
      │    │    │    │                 <--- 'MAIL' --- 'SHIP'
      │    │    │    ├── index-join lineitem
      │    │    │    │    ├── save-table-name: q12_index_join_6
      │    │    │    │    ├── columns: l_orderkey:12(int!null) l_shipdate:22(date!null) l_commitdate:23(date!null) l_receiptdate:24(date!null) l_shipmode:26(char!null)
      │    │    │    │    ├── stats: [rows=936126, distinct(12)=742921, null(12)=0, distinct(22)=2526, null(22)=0, distinct(23)=2466, null(23)=0, distinct(24)=365, null(24)=0, distinct(26)=7, null(26)=0]
      │    │    │    │    └── scan lineitem@l_rd
      │    │    │    │         ├── save-table-name: q12_scan_7
      │    │    │    │         ├── columns: l_orderkey:12(int!null) l_linenumber:15(int!null) l_receiptdate:24(date!null)
      │    │    │    │         ├── constraint: /24/12/15: [/'1994-01-01' - /'1994-12-31']
      │    │    │    │         ├── stats: [rows=936126, distinct(12)=742921, null(12)=0, distinct(15)=7, null(15)=0, distinct(24)=365, null(24)=0]
      │    │    │    │         │   histogram(12)=  0 93.594 4587 93.594  4587 93.594  4587 93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4493.4  187.19  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594  4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4493.4  187.19   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4493.4  187.19   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4587  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594   4680.6  93.594
      │    │    │    │         │                 <--- 197 ------- 23686 ------ 53253 ------ 90435 ------ 121730 ------ 153280 ------ 175456 ------ 208548 ------ 242209 ------ 273057 -------- 296640 ------ 330307 ------ 360999 ------ 386307 ------ 420225 ------ 450050 ------ 477795 ------ 504711 ------ 533153 ------ 556672 ------ 582243 ------ 613729 ------ 646117 ------ 675840 ------ 706048 ------ 733063 ------ 769282 ------ 793922 ------ 820357 ------ 849536 ------ 875719 ------ 905028 ------ 940643 ------ 968355 ------ 998721 ------ 1023621 ------ 1059424 ------ 1084932 ------ 1115553 ------ 1139363 ------ 1167361 ------ 1194400 ------ 1225984 ------ 1253861 ------ 1281633 ------ 1304999 ------ 1336355 ------ 1370759 ------ 1400832 ------ 1434085 ------ 1458852 ------ 1491427 ------ 1525120 ------ 1555205 ------ 1591300 ------ 1619426 ------ 1651458 ------ 1682950 ------ 1711399 ------ 1747591 ------ 1787205 -------- 1822240 ------ 1856163 ------ 1886915 ------ 1910949 ------ 1947202 -------- 1974311 ------ 2009286 ------ 2044034 ------ 2079104 ------ 2103488 ------ 2134657 ------ 2164293 ------ 2204514 ------ 2230823 ------ 2265253 ------ 2289826 ------ 2329539 ------ 2364455 ------ 2393507 ------ 2414628 ------ 2440228 ------ 2465255 ------ 2489568 ------ 2520900 ------ 2554919 ------ 2583333 ------ 2612966 ------ 2644833 ------ 2667362 ------ 2702784 ------ 2727394 ------ 2759748 ------ 2794531 ------ 2822214 ------ 2846624 ------ 2883748 ------ 2919586 ------ 2951908 ------ 2980068 ------ 3014726 ------ 3050725 ------ 3081028 ------ 3113351 ------ 3150243 ------ 3185669 ------ 3214311 ------ 3241281 ------ 3275748 ------ 3303232 ------ 3339559 ------ 3370627 ------ 3393664 ------ 3435265 ------ 3464581 ------ 3489026 ------ 3516096 ------ 3548480 ------ 3587015 ------ 3611239 ------ 3638724 ------ 3668641 ------ 3695751 ------ 3729636 ------ 3751523 ------ 3784608 ------ 3815715 ------ 3848608 ------ 3881184 ------ 3908738 ------ 3940002 ------ 3966176 ------ 4001984 ------ 4035687 ------ 4065283 ------ 4092834 ------ 4133062 ------ 4160613 ------ 4196421 ------ 4223713 ------ 4254788 ------ 4291040 ------ 4313664 ------ 4342823 ------ 4369952 ------ 4391684 ------ 4419040 ------ 4449921 ------ 4471781 ------ 4506210 ------ 4538176 -------- 4571297 -------- 4601121 -------- 4630887 -------- 4657476 -------- 4684803 -------- 4714566 -------- 4744070 -------- 4776385 -------- 4807777 -------- 4839491 -------- 4873953 -------- 4902245 -------- 4936263 -------- 4970721 -------- 5003140 -------- 5029729 -------- 5059010 -------- 5087521 -------- 5121093 -------- 5150405 -------- 5178375 -------- 5203683 -------- 5234531 -------- 5268195 -------- 5300004 -------- 5331558 -------- 5362178 -------- 5385762 -------- 5418498 -------- 5445762 -------- 5483109 -------- 5514561 -------- 5542052 -------- 5569572 -------- 5596102 -------- 5622401 -------- 5652194 -------- 5671362 -------- 5699591 -------- 5727136 -------- 5753284 -------- 5780742 -------- 5809189 -------- 5836545 -------- 5864454 -------- 5894917 -------- 5933825 -------- 5968933 -------- 5999590
      │    │    │    │         │   histogram(15)=  0 2.3207e+05 0 2.0885e+05 0 1.642e+05 0 1.3443e+05 0 99323 0 64780 0 32484
      │    │    │    │         │                 <------ 1 ---------- 2 ---------- 3 --------- 4 -------- 5 ----- 6 ----- 7 -
      │    │    │    │         │   histogram(24)=  0      3001      25205      4201      25805      4201      26405      4801      26405      3001      27005      4201      28806      1200      26405      3601      26405      4201      27605      3001      27005      3001      27605      4801      28806      1200      28806      1200      27005      2400      28806      600       26405      4201      28806      2400      28806      1200      27005      2400      28206      1800      27005      3001      28806      1200      25805      3601      28806      4801      26405      3601      28206      1200      27605      3001      28206      3001      27605      4201      27005      3001      19684     2460.5
      │    │    │    │         │                 <--- '1994-01-01' ------- '1994-01-13' ------- '1994-01-25' ------- '1994-02-06' ------- '1994-02-18' ------- '1994-03-02' ------- '1994-03-15' ------- '1994-03-28' ------- '1994-04-12' ------- '1994-04-23' ------- '1994-05-08' ------- '1994-05-18' ------- '1994-05-30' ------- '1994-06-11' ------- '1994-06-20' ------- '1994-06-30' ------- '1994-07-10' ------- '1994-07-23' ------- '1994-08-05' ------- '1994-08-15' ------- '1994-08-29' ------- '1994-09-09' ------- '1994-09-21' ------- '1994-09-30' ------- '1994-10-12' ------- '1994-10-22' ------- '1994-11-01' ------- '1994-11-12' ------- '1994-11-27' ------- '1994-12-11' ------- '1994-12-22' ------- '1994-12-31'
      │    │    │    │         ├── key: (12,15)
      │    │    │    │         └── fd: (12,15)-->(24)
      │    │    │    └── filters
      │    │    │         ├── l_shipmode:26 IN ('MAIL', 'SHIP') [type=bool, outer=(26), constraints=(/26: [/'MAIL' - /'MAIL'] [/'SHIP' - /'SHIP']; tight)]
      │    │    │         ├── l_commitdate:23 < l_receiptdate:24 [type=bool, outer=(23,24), constraints=(/23: (/NULL - ]; /24: (/NULL - ])]
      │    │    │         └── l_shipdate:22 < l_commitdate:23 [type=bool, outer=(22,23), constraints=(/22: (/NULL - ]; /23: (/NULL - ])]
      │    │    └── filters (true)
      │    └── projections
      │         ├── CASE WHEN (o_orderpriority:6 = '1-URGENT') OR (o_orderpriority:6 = '2-HIGH') THEN 1 ELSE 0 END [as=column30:30, type=int, outer=(6)]
      │         └── CASE WHEN (o_orderpriority:6 != '1-URGENT') AND (o_orderpriority:6 != '2-HIGH') THEN 1 ELSE 0 END [as=column32:32, type=int, outer=(6)]
      └── aggregations
           ├── sum [as=sum:31, type=decimal, outer=(30)]
           │    └── column30:30 [type=int]
           └── sum [as=sum:33, type=decimal, outer=(32)]
                └── column32:32 [type=int]

----Stats for q12_sort_1----
column_names       row_count  distinct_count  null_count
{high_line_count}  2          2               0
{l_shipmode}       2          2               0
{low_line_count}   2          2               0
~~~~
column_names       row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{high_line_count}  2.00           1.00           2.00                1.00                0.00            1.00
{l_shipmode}       2.00           1.00           2.00                1.00                0.00            1.00
{low_line_count}   2.00           1.00           2.00                1.00                0.00            1.00

----Stats for q12_group_by_2----
column_names  row_count  distinct_count  null_count
{l_shipmode}  2          2               0
{sum_1}       2          2               0
{sum}         2          2               0
~~~~
column_names  row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{l_shipmode}  2.00           1.00           2.00                1.00                0.00            1.00
{sum}         2.00           1.00           2.00                1.00                0.00            1.00
{sum_1}       2.00           1.00           2.00                1.00                0.00            1.00

----Stats for q12_project_3----
column_names  row_count  distinct_count  null_count
{column30}    30988      2               0
{column32}    30988      2               0
{l_shipmode}  30988      2               0
~~~~
column_names  row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{column30}    29611.00       1.05           5.00                2.50 <==            0.00            1.00
{column32}    29611.00       1.05           5.00                2.50 <==            0.00            1.00
{l_shipmode}  29611.00       1.05           2.00                1.00                0.00            1.00

----Stats for q12_lookup_join_4----
column_names       row_count  distinct_count  null_count
{l_commitdate}     30988      392             0
{l_orderkey}       30988      28828           0
{l_receiptdate}    30988      365             0
{l_shipdate}       30988      391             0
{l_shipmode}       30988      2               0
{o_orderkey}       30988      28828           0
{o_orderpriority}  30988      5               0
~~~~
column_names       row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{l_commitdate}     29611.00       1.05           2466.00             6.29 <==            0.00            1.00
{l_orderkey}       29611.00       1.05           29397.00            1.02                0.00            1.00
{l_receiptdate}    29611.00       1.05           365.00              1.00                0.00            1.00
{l_shipdate}       29611.00       1.05           2526.00             6.46 <==            0.00            1.00
{l_shipmode}       29611.00       1.05           2.00                1.00                0.00            1.00
{o_orderkey}       29611.00       1.05           29397.00            1.02                0.00            1.00
{o_orderpriority}  29611.00       1.05           5.00                1.00                0.00            1.00

----Stats for q12_select_5----
column_names     row_count  distinct_count  null_count
{l_commitdate}   30988      392             0
{l_orderkey}     30988      28828           0
{l_receiptdate}  30988      365             0
{l_shipdate}     30988      391             0
{l_shipmode}     30988      2               0
~~~~
column_names     row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{l_commitdate}   29611.00       1.05           2466.00             6.29 <==            0.00            1.00
{l_orderkey}     29611.00       1.05           29397.00            1.02                0.00            1.00
{l_receiptdate}  29611.00       1.05           365.00              1.00                0.00            1.00
{l_shipdate}     29611.00       1.05           2526.00             6.46 <==            0.00            1.00
{l_shipmode}     29611.00       1.05           2.00                1.00                0.00            1.00

----Stats for q12_index_join_6----
column_names     row_count  distinct_count  null_count
{l_commitdate}   909844     560             0
{l_orderkey}     909844     267788          0
{l_receiptdate}  909844     365             0
{l_shipdate}     909844     394             0
{l_shipmode}     909844     7               0
~~~~
column_names     row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{l_commitdate}   936126.00      1.03           2466.00             4.40 <==            0.00            1.00
{l_orderkey}     936126.00      1.03           742921.00           2.77 <==            0.00            1.00
{l_receiptdate}  936126.00      1.03           365.00              1.00                0.00            1.00
{l_shipdate}     936126.00      1.03           2526.00             6.41 <==            0.00            1.00
{l_shipmode}     936126.00      1.03           7.00                1.00                0.00            1.00

----Stats for q12_scan_7----
column_names     row_count  distinct_count  null_count
{l_linenumber}   909844     7               0
{l_orderkey}     909844     267788          0
{l_receiptdate}  909844     365             0
~~~~
column_names     row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{l_linenumber}   936126.00      1.03           7.00                1.00                0.00            1.00
{l_orderkey}     936126.00      1.03           742921.00           2.77 <==            0.00            1.00
{l_receiptdate}  936126.00      1.03           365.00              1.00                0.00            1.00
----
----
