blob: ea5fc4a2dae0c363c959a6a2e92fc96b6a349f62 [file] [log] [blame]
--! qt:dataset:src
--! qt:dataset:part
-- SORT_QUERY_RESULTS
set hive.mapred.mode=nonstrict;
-- non agg, non corr
explain
select key, count(*)
from src
group by key
having key not in
( select key from src s1
where s1.key > '12'
)
;
-- non agg, corr
explain
select b.p_mfgr, min(p_retailprice)
from part b
group by b.p_mfgr
having b.p_mfgr not in
(select p_mfgr
from (select p_mfgr, min(p_retailprice) l, max(p_retailprice) r, avg(p_retailprice) a from part group by p_mfgr) a
where min(p_retailprice) = l and r - l > 600
)
;
select b.p_mfgr, min(p_retailprice)
from part b
group by b.p_mfgr
having b.p_mfgr not in
(select p_mfgr
from (select p_mfgr, min(p_retailprice) l, max(p_retailprice) r, avg(p_retailprice) a from part group by p_mfgr) a
where min(p_retailprice) = l and r - l > 600
)
;
-- agg, non corr
explain
select b.p_mfgr, min(p_retailprice)
from part b
group by b.p_mfgr
having b.p_mfgr not in
(select p_mfgr
from part a
group by p_mfgr
having max(p_retailprice) - min(p_retailprice) > 600
)
;
select b.p_mfgr, min(p_retailprice)
from part b
group by b.p_mfgr
having b.p_mfgr not in
(select p_mfgr
from part a
group by p_mfgr
having max(p_retailprice) - min(p_retailprice) > 600
)
;
--nullability tests
CREATE TABLE t1_n145 (c1 INT, c2 CHAR(100));
INSERT INTO t1_n145 VALUES (null,null), (1,''), (2,'abcde'), (100,'abcdefghij');
CREATE TABLE t2_n85 (c1 INT);
INSERT INTO t2_n85 VALUES (null), (2), (100);
explain SELECT c1 FROM t1_n145 group by c1 having c1 NOT IN (SELECT c1 FROM t2_n85);
SELECT c1 FROM t1_n145 group by c1 having c1 NOT IN (SELECT c1 FROM t2_n85);
explain SELECT c1 FROM t1_n145 group by c1 having c1 NOT IN (SELECT c1 FROM t2_n85 where t1_n145.c1=t2_n85.c1);
SELECT c1 FROM t1_n145 group by c1 having c1 NOT IN (SELECT c1 FROM t2_n85 where t1_n145.c1=t2_n85.c1);
DROP TABLE t1_n145;
DROP TABLE t2_n85;