aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/sql/suites/tpch/q12.sql
blob: d8425b0b4a80d67d2296e5bd056c422926cf0135 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
-- TPC-H/TPC-R Shipping Modes and Order Priority Query (Q12)
-- TPC TPC-H Parameter Substitution (Version 2.17.2 build 0)
-- using 1680793381 as a seed to the RNG

$join = (
    select
        l.l_shipmode as l_shipmode,
        o.o_orderpriority as o_orderpriority,
        l.l_commitdate as l_commitdate,
        l.l_shipdate as l_shipdate,
        l.l_receiptdate as l_receiptdate
    from
        plato.orders as o
        join plato.lineitem as l
        on o.o_orderkey == l.l_orderkey
);

$border = Date("1994-01-01");

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 $join
where
    (l_shipmode = 'MAIL' or l_shipmode = 'TRUCK')
    and l_commitdate < l_receiptdate
    and l_shipdate < l_commitdate
    and cast(l_receiptdate as timestamp) >= $border
    and cast(l_receiptdate as timestamp) < ($border + Interval("P365D"))
group by
    l_shipmode
order by
    l_shipmode;