[ 
https://issues.apache.org/jira/browse/HIVE-8315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14161506#comment-14161506
 ] 

Mostafa Mokhtar commented on HIVE-8315:
---------------------------------------

[~rhbutani]
The correct plan is not getting generated, most likely because HIVE-8280 is not 
addressed yet.
item x store_sales should match the PK/FK pattern and currently PK returns 
selectivity of 1 due to issue mentioned in HIVE-8280.

{code}
2014-10-07 01:17:16,747 DEBUG [main]: parse.SemanticAnalyzer 
(SemanticAnalyzer.java:apply(12316)) - HiveSortRel(sort0=[$0], sort1=[$1], 
sort2=[$20], dir0=[ASC], dir1=[ASC], dir2=[ASC]): rowcount = 
424827.22498719255, cumulative cost = {6.678648133048896E9 rows, 
424827.22498719255 cpu, 0.0 io}, id = 1311
  HiveProjectRel(product_name=[$0], store_name=[$2], store_zip=[$3], 
b_street_number=[$4], b_streen_name=[$5], b_city=[$6], b_zip=[$7], 
c_street_number=[$8], c_street_name=[$9], c_city=[$10], c_zip=[$11], 
syear=[$12], cnt=[$13], s1=[$14], s2=[$15], s3=[$16], s11=[$22], s21=[$23], 
s31=[$24], syear1=[$20], cnt1=[$21]): rowcount = 424827.22498719255, cumulative 
cost = {6.216184283941706E9 rows, 0.0 cpu, 0.0 io}, id = 1309
    HiveFilterRel(condition=[<=($21, $13)]): rowcount = 424827.22498719255, 
cumulative cost = {6.216184283941706E9 rows, 0.0 cpu, 0.0 io}, id = 1307
      HiveProjectRel(product_name=[$0], item_sk=[$1], store_name=[$2], 
store_zip=[$3], b_street_number=[$4], b_streen_name=[$5], b_city=[$6], 
b_zip=[$7], c_street_number=[$8], c_street_name=[$9], c_city=[$10], 
c_zip=[$11], syear=[$12], cnt=[$13], s1=[$14], s2=[$15], s3=[$16], 
item_sk0=[$17], store_name0=[$18], store_zip0=[$19], syear0=[$20], cnt0=[$21], 
s10=[$22], s20=[$23], s30=[$24]): rowcount = 1274481.6749615776, cumulative 
cost = {6.216184283941706E9 rows, 0.0 cpu, 0.0 io}, id = 3711
        HiveJoinRel(condition=[AND(AND(=($1, $17), =($2, $18)), =($3, $19))], 
joinType=[inner]): rowcount = 1274481.6749615776, cumulative cost = 
{6.216184283941706E9 rows, 0.0 cpu, 0.0 io}, id = 3706
          HiveProjectRel(product_name=[$0], item_sk=[$1], store_name=[$2], 
store_zip=[$3], b_street_number=[$4], b_streen_name=[$5], b_city=[$6], 
b_zip=[$7], c_street_number=[$8], c_street_name=[$9], c_city=[$10], 
c_zip=[$11], syear=[$12], cnt=[$15], s1=[$16], s2=[$17], s3=[$18]): rowcount = 
800000.0, cumulative cost = {6.214584283941706E9 rows, 0.0 cpu, 0.0 io}, id = 
1209
            HiveAggregateRel(group=[{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
13, 14}], agg#0=[count()], agg#1=[sum($15)], agg#2=[sum($16)], 
agg#3=[sum($17)]): rowcount = 800000.0, cumulative cost = {6.214584283941706E9 
rows, 0.0 cpu, 0.0 io}, id = 1207
              HiveProjectRel($f0=[$53], $f1=[$50], $f2=[$27], $f3=[$28], 
$f4=[$39], $f5=[$40], $f6=[$41], $f7=[$42], $f8=[$44], $f9=[$45], $f10=[$46], 
$f11=[$47], $f12=[$21], $f13=[$23], $f14=[$25], $f15=[$8], $f16=[$9], 
$f17=[$10]): rowcount = 3.1094552702569574E8, cumulative cost = 
{6.214584283941706E9 rows, 0.0 cpu, 0.0 io}, id = 1205
                HiveProjectRel(ss_item_sk=[$0], ss_customer_sk=[$1], 
ss_cdemo_sk=[$2], ss_hdemo_sk=[$3], ss_addr_sk=[$4], ss_store_sk=[$5], 
ss_promo_sk=[$6], ss_ticket_number=[$7], ss_wholesale_cost=[$8], 
ss_list_price=[$9], ss_coupon_amt=[$10], ss_sold_date_sk=[$11], 
sr_item_sk=[$12], sr_ticket_number=[$13], c_customer_sk=[$14], 
c_current_cdemo_sk=[$15], c_current_hdemo_sk=[$16], c_current_addr_sk=[$17], 
c_first_shipto_date_sk=[$18], c_first_sales_date_sk=[$19], d_date_sk=[$20], 
d_year=[$21], d_date_sk0=[$22], d_year0=[$23], d_date_sk1=[$24], d_year1=[$25], 
s_store_sk=[$26], s_store_name=[$27], s_zip=[$28], cd_demo_sk=[$29], 
cd_marital_status=[$30], cd_demo_sk0=[$31], cd_marital_status0=[$32], 
p_promo_sk=[$37], hd_demo_sk=[$33], hd_income_band_sk=[$34], hd_demo_sk0=[$38], 
hd_income_band_sk0=[$39], ca_address_sk=[$45], ca_street_number=[$46], 
ca_street_name=[$47], ca_city=[$48], ca_zip=[$49], ca_address_sk0=[$50], 
ca_street_number0=[$51], ca_street_name0=[$52], ca_city0=[$53], ca_zip0=[$54], 
ib_income_band_sk=[$35], ib_income_band_sk0=[$40], i_item_sk=[$41], 
i_current_price=[$42], i_color=[$43], i_product_name=[$44], cs_item_sk=[$36]): 
rowcount = 3.1094552702569574E8, cumulative cost = {6.214584283941706E9 rows, 
0.0 cpu, 0.0 io}, id = 3704
                  HiveJoinRel(condition=[=($17, $50)], joinType=[inner]): 
rowcount = 3.1094552702569574E8, cumulative cost = {6.214584283941706E9 rows, 
0.0 cpu, 0.0 io}, id = 3702
                    HiveJoinRel(condition=[=($4, $45)], joinType=[inner]): 
rowcount = 3.1094552702569574E8, cumulative cost = {5.90283875691601E9 rows, 
0.0 cpu, 0.0 io}, id = 3700
                      HiveJoinRel(condition=[=($0, $41)], joinType=[inner]): 
rowcount = 3.1094552702569574E8, cumulative cost = {5.591093229890314E9 rows, 
0.0 cpu, 0.0 io}, id = 3698
                        HiveJoinRel(condition=[=($16, $38)], joinType=[inner]): 
rowcount = 3.1094552702569574E8, cumulative cost = {5.280147701864618E9 rows, 
0.0 cpu, 0.0 io}, id = 3696
                          HiveJoinRel(condition=[=($6, $37)], 
joinType=[inner]): rowcount = 4.015947855294367E8, cumulative cost = 
{4.878545716335181E9 rows, 0.0 cpu, 0.0 io}, id = 3693
                            HiveJoinRel(condition=[=($0, $36)], 
joinType=[inner]): rowcount = 4.015947855294367E8, cumulative cost = 
{4.476950480805744E9 rows, 0.0 cpu, 0.0 io}, id = 3691
                              HiveJoinRel(condition=[=($3, $33)], 
joinType=[inner]): rowcount = 4.015947855294367E8, cumulative cost = 
{4.0753556942763076E9 rows, 0.0 cpu, 0.0 io}, id = 3689
                                HiveFilterRel(condition=[<>($30, $32)]): 
rowcount = 5.186708209219766E8, cumulative cost = {3.556677673354331E9 rows, 
0.0 cpu, 0.0 io}, id = 1153
                                  HiveProjectRel(ss_item_sk=[$0], 
ss_customer_sk=[$1], ss_cdemo_sk=[$2], ss_hdemo_sk=[$3], ss_addr_sk=[$4], 
ss_store_sk=[$5], ss_promo_sk=[$6], ss_ticket_number=[$7], 
ss_wholesale_cost=[$8], ss_list_price=[$9], ss_coupon_amt=[$10], 
ss_sold_date_sk=[$11], sr_item_sk=[$31], sr_ticket_number=[$32], 
c_customer_sk=[$21], c_current_cdemo_sk=[$22], c_current_hdemo_sk=[$23], 
c_current_addr_sk=[$24], c_first_shipto_date_sk=[$25], 
c_first_sales_date_sk=[$26], d_date_sk=[$14], d_year=[$15], d_date_sk0=[$27], 
d_year0=[$28], d_date_sk1=[$29], d_year1=[$30], s_store_sk=[$16], 
s_store_name=[$17], s_zip=[$18], cd_demo_sk=[$12], cd_marital_status=[$13], 
cd_demo_sk0=[$19], cd_marital_status0=[$20]): rowcount = 3.6306957464538364E9, 
cumulative cost = {3.556677673354331E9 rows, 0.0 cpu, 0.0 io}, id = 2300
                                    HiveJoinRel(condition=[AND(=($0, $31), 
=($7, $32))], joinType=[inner]): rowcount = 3.6306957464538364E9, cumulative 
cost = {3.556677673354331E9 rows, 0.0 cpu, 0.0 io}, id = 2298
                                      HiveJoinRel(condition=[=($1, $21)], 
joinType=[inner]): rowcount = 1.297271788131117E9, cumulative cost = 
{2.203827880223214E9 rows, 0.0 cpu, 0.0 io}, id = 2296
                                        HiveJoinRel(condition=[=($5, $16)], 
joinType=[inner]): rowcount = 5.50076554E8, cumulative cost = 
{1.6521513262232141E9 rows, 0.0 cpu, 0.0 io}, id = 2289
                                          HiveJoinRel(condition=[=($11, $14)], 
joinType=[inner]): rowcount = 5.50076554E8, cumulative cost = 
{1.1020745602232141E9 rows, 0.0 cpu, 0.0 io}, id = 2287
                                            HiveJoinRel(condition=[=($2, $12)], 
joinType=[inner]): rowcount = 5.50076554E8, cumulative cost = {5.51997354E8 
rows, 0.0 cpu, 0.0 io}, id = 1877
                                              HiveProjectRel(ss_item_sk=[$1], 
ss_customer_sk=[$2], ss_cdemo_sk=[$3], ss_hdemo_sk=[$4], ss_addr_sk=[$5], 
ss_store_sk=[$6], ss_promo_sk=[$7], ss_ticket_number=[$8], 
ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18], 
ss_sold_date_sk=[$22]): rowcount = 5.50076554E8, cumulative cost = {0.0 rows, 
0.0 cpu, 0.0 io}, id = 909
                                                
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.store_sales]]): 
rowcount = 5.50076554E8, cumulative cost = {0}, id = 55
                                              HiveProjectRel(cd_demo_sk=[$0], 
cd_marital_status=[$2]): rowcount = 1920800.0, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1239
                                                
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.customer_demographics]]):
 rowcount = 1920800.0, cumulative cost = {0}, id = 56
                                            HiveProjectRel(d_date_sk=[$0], 
d_year=[$6]): rowcount = 652.2232142857142, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1129
                                              HiveFilterRel(condition=[=($6, 
2000)]): rowcount = 652.2232142857142, cumulative cost = {0.0 rows, 0.0 cpu, 
0.0 io}, id = 1127
                                                
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.date_dim]]): 
rowcount = 73049.0, cumulative cost = {0}, id = 65
                                          HiveProjectRel(s_store_sk=[$0], 
s_store_name=[$5], s_zip=[$25]): rowcount = 212.0, cumulative cost = {0.0 rows, 
0.0 cpu, 0.0 io}, id = 1235
                                            
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.store]]): rowcount 
= 212.0, cumulative cost = {0}, id = 54
                                        HiveJoinRel(condition=[=($6, $10)], 
joinType=[inner]): rowcount = 1600000.0, cumulative cost = {6866898.0 rows, 0.0 
cpu, 0.0 io}, id = 2294
                                          HiveJoinRel(condition=[=($7, $8)], 
joinType=[inner]): rowcount = 1600000.0, cumulative cost = {5193849.0 rows, 0.0 
cpu, 0.0 io}, id = 2292
                                            HiveJoinRel(condition=[=($3, $0)], 
joinType=[inner]): rowcount = 1600000.0, cumulative cost = {3520800.0 rows, 0.0 
cpu, 0.0 io}, id = 1886
                                              HiveProjectRel(cd_demo_sk=[$0], 
cd_marital_status=[$2]): rowcount = 1920800.0, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1239
                                                
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.customer_demographics]]):
 rowcount = 1920800.0, cumulative cost = {0}, id = 56
                                              
HiveProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], 
c_current_hdemo_sk=[$3], c_current_addr_sk=[$4], c_first_shipto_date_sk=[$5], 
c_first_sales_date_sk=[$6]): rowcount = 1600000.0, cumulative cost = {0.0 rows, 
0.0 cpu, 0.0 io}, id = 1217
                                                
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.customer]]): 
rowcount = 1600000.0, cumulative cost = {0}, id = 59
                                            HiveProjectRel(d_date_sk=[$0], 
d_year=[$6]): rowcount = 73049.0, cumulative cost = {0.0 rows, 0.0 cpu, 0.0 
io}, id = 1227
                                              
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.date_dim]]): 
rowcount = 73049.0, cumulative cost = {0}, id = 65
                                          HiveProjectRel(d_date_sk=[$0], 
d_year=[$6]): rowcount = 73049.0, cumulative cost = {0.0 rows, 0.0 cpu, 0.0 
io}, id = 1227
                                            
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.date_dim]]): 
rowcount = 73049.0, cumulative cost = {0}, id = 65
                                      HiveProjectRel(sr_item_sk=[$1], 
sr_ticket_number=[$8]): rowcount = 5.5578005E7, cumulative cost = {0.0 rows, 
0.0 cpu, 0.0 io}, id = 912
                                        
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.store_returns]]): 
rowcount = 5.5578005E7, cumulative cost = {0}, id = 62
                                HiveJoinRel(condition=[=($1, $2)], 
joinType=[inner]): rowcount = 7200.0, cumulative cost = {7220.0 rows, 0.0 cpu, 
0.0 io}, id = 3424
                                  HiveProjectRel(hd_demo_sk=[$0], 
hd_income_band_sk=[$1]): rowcount = 7200.0, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1253
                                    
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.household_demographics]]):
 rowcount = 7200.0, cumulative cost = {0}, id = 53
                                  HiveProjectRel(ib_income_band_sk=[$0]): 
rowcount = 20.0, cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1269
                                    
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.income_band]]): 
rowcount = 20.0, cumulative cost = {0}, id = 63
                              HiveProjectRel(cs_item_sk=[$0]): rowcount = 1.0, 
cumulative cost = {3.15348608E8 rows, 0.0 cpu, 0.0 io}, id = 1201
                                HiveFilterRel(condition=[>($1, *(CAST(2):DOUBLE 
NOT NULL, $2))]): rowcount = 1.0, cumulative cost = {3.15348608E8 rows, 0.0 
cpu, 0.0 io}, id = 1199
                                  HiveAggregateRel(group=[{0}], 
agg#0=[sum($1)], agg#1=[sum($2)]): rowcount = 38846.0, cumulative cost = 
{3.15348608E8 rows, 0.0 cpu, 0.0 io}, id = 1197
                                    HiveProjectRel($f0=[$0], $f1=[$2], 
$f2=[+(+($5, $6), $7)]): rowcount = 6.692553251460564E8, cumulative cost = 
{3.15348608E8 rows, 0.0 cpu, 0.0 io}, id = 1195
                                      HiveProjectRel(cs_item_sk=[$0], 
cs_order_number=[$1], cs_ext_list_price=[$2], cr_item_sk=[$3], 
cr_order_number=[$4], cr_refunded_cash=[$5], cr_reversed_charge=[$6], 
cr_store_credit=[$7]): rowcount = 6.692553251460564E8, cumulative cost = 
{3.15348608E8 rows, 0.0 cpu, 0.0 io}, id = 1446
                                        HiveJoinRel(condition=[AND(=($0, $3), 
=($1, $4))], joinType=[inner]): rowcount = 6.692553251460564E8, cumulative cost 
= {3.15348608E8 rows, 0.0 cpu, 0.0 io}, id = 1441
                                          HiveProjectRel(cs_item_sk=[$14], 
cs_order_number=[$16], cs_ext_list_price=[$24]): rowcount = 2.86549727E8, 
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1283
                                            
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.catalog_sales]]): 
rowcount = 2.86549727E8, cumulative cost = {0}, id = 45
                                          HiveProjectRel(cr_item_sk=[$1], 
cr_order_number=[$15], cr_refunded_cash=[$22], cr_reversed_charge=[$23], 
cr_store_credit=[$24]): rowcount = 2.8798881E7, cumulative cost = {0.0 rows, 
0.0 cpu, 0.0 io}, id = 1285
                                            
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.catalog_returns]]): 
rowcount = 2.8798881E7, cumulative cost = {0}, id = 46
                            HiveProjectRel(p_promo_sk=[$0]): rowcount = 450.0, 
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1249
                              
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.promotion]]): 
rowcount = 450.0, cumulative cost = {0}, id = 58
                          HiveJoinRel(condition=[=($1, $2)], joinType=[inner]): 
rowcount = 7200.0, cumulative cost = {7220.0 rows, 0.0 cpu, 0.0 io}, id = 3480
                            HiveProjectRel(hd_demo_sk=[$0], 
hd_income_band_sk=[$1]): rowcount = 7200.0, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1253
                              
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.household_demographics]]):
 rowcount = 7200.0, cumulative cost = {0}, id = 53
                            HiveProjectRel(ib_income_band_sk=[$0]): rowcount = 
20.0, cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1269
                              
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.income_band]]): 
rowcount = 20.0, cumulative cost = {0}, id = 63
                        HiveProjectRel(i_item_sk=[$0], i_current_price=[$5], 
i_color=[$17], i_product_name=[$21]): rowcount = 1.0, cumulative cost = {0.0 
rows, 0.0 cpu, 0.0 io}, id = 1185
                          HiveFilterRel(condition=[AND(in($17, 'maroon', 
'burnished', 'dim', 'steel', 'navajo', 'chocolate'), between(false, $5, 35, 
+(35, 10)), between(false, $5, +(35, 1), +(35, 15)))]): rowcount = 1.0, 
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1183
                            
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.item]]): rowcount = 
48000.0, cumulative cost = {0}, id = 68
                      HiveProjectRel(ca_address_sk=[$0], ca_street_number=[$2], 
ca_street_name=[$3], ca_city=[$6], ca_zip=[$9]): rowcount = 800000.0, 
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1261
                        
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.customer_address]]):
 rowcount = 800000.0, cumulative cost = {0}, id = 61
                    HiveProjectRel(ca_address_sk=[$0], ca_street_number=[$2], 
ca_street_name=[$3], ca_city=[$6], ca_zip=[$9]): rowcount = 800000.0, 
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1261
                      
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.customer_address]]):
 rowcount = 800000.0, cumulative cost = {0}, id = 61
          HiveProjectRel(item_sk=[$1], store_name=[$2], store_zip=[$3], 
syear=[$12], cnt=[$15], s1=[$16], s2=[$17], s3=[$18]): rowcount = 800000.0, 
cumulative cost = {6.214584283941706E9 rows, 0.0 cpu, 0.0 io}, id = 1303
            HiveAggregateRel(group=[{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
13, 14}], agg#0=[count()], agg#1=[sum($15)], agg#2=[sum($16)], 
agg#3=[sum($17)]): rowcount = 800000.0, cumulative cost = {6.214584283941706E9 
rows, 0.0 cpu, 0.0 io}, id = 1301
              HiveProjectRel($f0=[$53], $f1=[$50], $f2=[$27], $f3=[$28], 
$f4=[$39], $f5=[$40], $f6=[$41], $f7=[$42], $f8=[$44], $f9=[$45], $f10=[$46], 
$f11=[$47], $f12=[$21], $f13=[$23], $f14=[$25], $f15=[$8], $f16=[$9], 
$f17=[$10]): rowcount = 3.1094552702569574E8, cumulative cost = 
{6.214584283941706E9 rows, 0.0 cpu, 0.0 io}, id = 1299
                HiveProjectRel(ss_item_sk=[$0], ss_customer_sk=[$1], 
ss_cdemo_sk=[$2], ss_hdemo_sk=[$3], ss_addr_sk=[$4], ss_store_sk=[$5], 
ss_promo_sk=[$6], ss_ticket_number=[$7], ss_wholesale_cost=[$8], 
ss_list_price=[$9], ss_coupon_amt=[$10], ss_sold_date_sk=[$11], 
sr_item_sk=[$12], sr_ticket_number=[$13], c_customer_sk=[$14], 
c_current_cdemo_sk=[$15], c_current_hdemo_sk=[$16], c_current_addr_sk=[$17], 
c_first_shipto_date_sk=[$18], c_first_sales_date_sk=[$19], d_date_sk=[$20], 
d_year=[$21], d_date_sk0=[$22], d_year0=[$23], d_date_sk1=[$24], d_year1=[$25], 
s_store_sk=[$26], s_store_name=[$27], s_zip=[$28], cd_demo_sk=[$29], 
cd_marital_status=[$30], cd_demo_sk0=[$31], cd_marital_status0=[$32], 
p_promo_sk=[$37], hd_demo_sk=[$33], hd_income_band_sk=[$34], hd_demo_sk0=[$38], 
hd_income_band_sk0=[$39], ca_address_sk=[$45], ca_street_number=[$46], 
ca_street_name=[$47], ca_city=[$48], ca_zip=[$49], ca_address_sk0=[$50], 
ca_street_number0=[$51], ca_street_name0=[$52], ca_city0=[$53], ca_zip0=[$54], 
ib_income_band_sk=[$35], ib_income_band_sk0=[$40], i_item_sk=[$41], 
i_current_price=[$42], i_color=[$43], i_product_name=[$44], cs_item_sk=[$36]): 
rowcount = 3.1094552702569574E8, cumulative cost = {6.214584283941706E9 rows, 
0.0 cpu, 0.0 io}, id = 3002
                  HiveJoinRel(condition=[=($17, $50)], joinType=[inner]): 
rowcount = 3.1094552702569574E8, cumulative cost = {6.214584283941706E9 rows, 
0.0 cpu, 0.0 io}, id = 3000
                    HiveJoinRel(condition=[=($4, $45)], joinType=[inner]): 
rowcount = 3.1094552702569574E8, cumulative cost = {5.90283875691601E9 rows, 
0.0 cpu, 0.0 io}, id = 2998
                      HiveJoinRel(condition=[=($0, $41)], joinType=[inner]): 
rowcount = 3.1094552702569574E8, cumulative cost = {5.591093229890314E9 rows, 
0.0 cpu, 0.0 io}, id = 2996
                        HiveJoinRel(condition=[=($16, $38)], joinType=[inner]): 
rowcount = 3.1094552702569574E8, cumulative cost = {5.280147701864618E9 rows, 
0.0 cpu, 0.0 io}, id = 2994
                          HiveJoinRel(condition=[=($6, $37)], 
joinType=[inner]): rowcount = 4.015947855294367E8, cumulative cost = 
{4.878545716335181E9 rows, 0.0 cpu, 0.0 io}, id = 2991
                            HiveJoinRel(condition=[=($0, $36)], 
joinType=[inner]): rowcount = 4.015947855294367E8, cumulative cost = 
{4.476950480805744E9 rows, 0.0 cpu, 0.0 io}, id = 2989
                              HiveJoinRel(condition=[=($3, $33)], 
joinType=[inner]): rowcount = 4.015947855294367E8, cumulative cost = 
{4.0753556942763076E9 rows, 0.0 cpu, 0.0 io}, id = 2987
                                HiveFilterRel(condition=[<>($30, $32)]): 
rowcount = 5.186708209219766E8, cumulative cost = {3.556677673354331E9 rows, 
0.0 cpu, 0.0 io}, id = 1247
                                  HiveProjectRel(ss_item_sk=[$0], 
ss_customer_sk=[$1], ss_cdemo_sk=[$2], ss_hdemo_sk=[$3], ss_addr_sk=[$4], 
ss_store_sk=[$5], ss_promo_sk=[$6], ss_ticket_number=[$7], 
ss_wholesale_cost=[$8], ss_list_price=[$9], ss_coupon_amt=[$10], 
ss_sold_date_sk=[$11], sr_item_sk=[$31], sr_ticket_number=[$32], 
c_customer_sk=[$21], c_current_cdemo_sk=[$22], c_current_hdemo_sk=[$23], 
c_current_addr_sk=[$24], c_first_shipto_date_sk=[$25], 
c_first_sales_date_sk=[$26], d_date_sk=[$14], d_year=[$15], d_date_sk0=[$27], 
d_year0=[$28], d_date_sk1=[$29], d_year1=[$30], s_store_sk=[$16], 
s_store_name=[$17], s_zip=[$18], cd_demo_sk=[$12], cd_marital_status=[$13], 
cd_demo_sk0=[$19], cd_marital_status0=[$20]): rowcount = 3.6306957464538364E9, 
cumulative cost = {3.556677673354331E9 rows, 0.0 cpu, 0.0 io}, id = 1873
                                    HiveJoinRel(condition=[AND(=($0, $31), 
=($7, $32))], joinType=[inner]): rowcount = 3.6306957464538364E9, cumulative 
cost = {3.556677673354331E9 rows, 0.0 cpu, 0.0 io}, id = 1871
                                      HiveJoinRel(condition=[=($1, $21)], 
joinType=[inner]): rowcount = 1.297271788131117E9, cumulative cost = 
{2.203827880223214E9 rows, 0.0 cpu, 0.0 io}, id = 1869
                                        HiveJoinRel(condition=[=($5, $16)], 
joinType=[inner]): rowcount = 5.50076554E8, cumulative cost = 
{1.6521513262232141E9 rows, 0.0 cpu, 0.0 io}, id = 1862
                                          HiveJoinRel(condition=[=($11, $14)], 
joinType=[inner]): rowcount = 5.50076554E8, cumulative cost = 
{1.1020745602232141E9 rows, 0.0 cpu, 0.0 io}, id = 1860
                                            HiveJoinRel(condition=[=($2, $12)], 
joinType=[inner]): rowcount = 5.50076554E8, cumulative cost = {5.51997354E8 
rows, 0.0 cpu, 0.0 io}, id = 1450
                                              HiveProjectRel(ss_item_sk=[$1], 
ss_customer_sk=[$2], ss_cdemo_sk=[$3], ss_hdemo_sk=[$4], ss_addr_sk=[$5], 
ss_store_sk=[$6], ss_promo_sk=[$7], ss_ticket_number=[$8], 
ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18], 
ss_sold_date_sk=[$22]): rowcount = 5.50076554E8, cumulative cost = {0.0 rows, 
0.0 cpu, 0.0 io}, id = 909
                                                
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.store_sales]]): 
rowcount = 5.50076554E8, cumulative cost = {0}, id = 55
                                              HiveProjectRel(cd_demo_sk=[$0], 
cd_marital_status=[$2]): rowcount = 1920800.0, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1239
                                                
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.customer_demographics]]):
 rowcount = 1920800.0, cumulative cost = {0}, id = 56
                                            HiveProjectRel(d_date_sk=[$0], 
d_year=[$6]): rowcount = 652.2232142857142, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1223
                                              HiveFilterRel(condition=[=($6, 
+(2000, 1))]): rowcount = 652.2232142857142, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1221
                                                
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.date_dim]]): 
rowcount = 73049.0, cumulative cost = {0}, id = 65
                                          HiveProjectRel(s_store_sk=[$0], 
s_store_name=[$5], s_zip=[$25]): rowcount = 212.0, cumulative cost = {0.0 rows, 
0.0 cpu, 0.0 io}, id = 1235
                                            
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.store]]): rowcount 
= 212.0, cumulative cost = {0}, id = 54
                                        HiveJoinRel(condition=[=($6, $10)], 
joinType=[inner]): rowcount = 1600000.0, cumulative cost = {6866898.0 rows, 0.0 
cpu, 0.0 io}, id = 1867
                                          HiveJoinRel(condition=[=($7, $8)], 
joinType=[inner]): rowcount = 1600000.0, cumulative cost = {5193849.0 rows, 0.0 
cpu, 0.0 io}, id = 1865
                                            HiveJoinRel(condition=[=($3, $0)], 
joinType=[inner]): rowcount = 1600000.0, cumulative cost = {3520800.0 rows, 0.0 
cpu, 0.0 io}, id = 1459
                                              HiveProjectRel(cd_demo_sk=[$0], 
cd_marital_status=[$2]): rowcount = 1920800.0, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1239
                                                
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.customer_demographics]]):
 rowcount = 1920800.0, cumulative cost = {0}, id = 56
                                              
HiveProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], 
c_current_hdemo_sk=[$3], c_current_addr_sk=[$4], c_first_shipto_date_sk=[$5], 
c_first_sales_date_sk=[$6]): rowcount = 1600000.0, cumulative cost = {0.0 rows, 
0.0 cpu, 0.0 io}, id = 1217
                                                
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.customer]]): 
rowcount = 1600000.0, cumulative cost = {0}, id = 59
                                            HiveProjectRel(d_date_sk=[$0], 
d_year=[$6]): rowcount = 73049.0, cumulative cost = {0.0 rows, 0.0 cpu, 0.0 
io}, id = 1227
                                              
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.date_dim]]): 
rowcount = 73049.0, cumulative cost = {0}, id = 65
                                          HiveProjectRel(d_date_sk=[$0], 
d_year=[$6]): rowcount = 73049.0, cumulative cost = {0.0 rows, 0.0 cpu, 0.0 
io}, id = 1227
                                            
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.date_dim]]): 
rowcount = 73049.0, cumulative cost = {0}, id = 65
                                      HiveProjectRel(sr_item_sk=[$1], 
sr_ticket_number=[$8]): rowcount = 5.5578005E7, cumulative cost = {0.0 rows, 
0.0 cpu, 0.0 io}, id = 912
                                        
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.store_returns]]): 
rowcount = 5.5578005E7, cumulative cost = {0}, id = 62
                                HiveJoinRel(condition=[=($1, $2)], 
joinType=[inner]): rowcount = 7200.0, cumulative cost = {7220.0 rows, 0.0 cpu, 
0.0 io}, id = 2722
                                  HiveProjectRel(hd_demo_sk=[$0], 
hd_income_band_sk=[$1]): rowcount = 7200.0, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1253
                                    
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.household_demographics]]):
 rowcount = 7200.0, cumulative cost = {0}, id = 53
                                  HiveProjectRel(ib_income_band_sk=[$0]): 
rowcount = 20.0, cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1269
                                    
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.income_band]]): 
rowcount = 20.0, cumulative cost = {0}, id = 63
                              HiveProjectRel(cs_item_sk=[$0]): rowcount = 1.0, 
cumulative cost = {3.15348608E8 rows, 0.0 cpu, 0.0 io}, id = 1295
                                HiveFilterRel(condition=[>($1, *(CAST(2):DOUBLE 
NOT NULL, $2))]): rowcount = 1.0, cumulative cost = {3.15348608E8 rows, 0.0 
cpu, 0.0 io}, id = 1293
                                  HiveAggregateRel(group=[{0}], 
agg#0=[sum($1)], agg#1=[sum($2)]): rowcount = 38846.0, cumulative cost = 
{3.15348608E8 rows, 0.0 cpu, 0.0 io}, id = 1291
                                    HiveProjectRel($f0=[$0], $f1=[$2], 
$f2=[+(+($5, $6), $7)]): rowcount = 6.692553251460564E8, cumulative cost = 
{3.15348608E8 rows, 0.0 cpu, 0.0 io}, id = 1289
                                      HiveProjectRel(cs_item_sk=[$0], 
cs_order_number=[$1], cs_ext_list_price=[$2], cr_item_sk=[$3], 
cr_order_number=[$4], cr_refunded_cash=[$5], cr_reversed_charge=[$6], 
cr_store_credit=[$7]): rowcount = 6.692553251460564E8, cumulative cost = 
{3.15348608E8 rows, 0.0 cpu, 0.0 io}, id = 1439
                                        HiveJoinRel(condition=[AND(=($0, $3), 
=($1, $4))], joinType=[inner]): rowcount = 6.692553251460564E8, cumulative cost 
= {3.15348608E8 rows, 0.0 cpu, 0.0 io}, id = 1434
                                          HiveProjectRel(cs_item_sk=[$14], 
cs_order_number=[$16], cs_ext_list_price=[$24]): rowcount = 2.86549727E8, 
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1283
                                            
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.catalog_sales]]): 
rowcount = 2.86549727E8, cumulative cost = {0}, id = 45
                                          HiveProjectRel(cr_item_sk=[$1], 
cr_order_number=[$15], cr_refunded_cash=[$22], cr_reversed_charge=[$23], 
cr_store_credit=[$24]): rowcount = 2.8798881E7, cumulative cost = {0.0 rows, 
0.0 cpu, 0.0 io}, id = 1285
                                            
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.catalog_returns]]): 
rowcount = 2.8798881E7, cumulative cost = {0}, id = 46
                            HiveProjectRel(p_promo_sk=[$0]): rowcount = 450.0, 
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1249
                              
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.promotion]]): 
rowcount = 450.0, cumulative cost = {0}, id = 58
                          HiveJoinRel(condition=[=($1, $2)], joinType=[inner]): 
rowcount = 7200.0, cumulative cost = {7220.0 rows, 0.0 cpu, 0.0 io}, id = 2778
                            HiveProjectRel(hd_demo_sk=[$0], 
hd_income_band_sk=[$1]): rowcount = 7200.0, cumulative cost = {0.0 rows, 0.0 
cpu, 0.0 io}, id = 1253
                              
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.household_demographics]]):
 rowcount = 7200.0, cumulative cost = {0}, id = 53
                            HiveProjectRel(ib_income_band_sk=[$0]): rowcount = 
20.0, cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1269
                              
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.income_band]]): 
rowcount = 20.0, cumulative cost = {0}, id = 63
                        HiveProjectRel(i_item_sk=[$0], i_current_price=[$5], 
i_color=[$17], i_product_name=[$21]): rowcount = 1.0, cumulative cost = {0.0 
rows, 0.0 cpu, 0.0 io}, id = 1279
                          HiveFilterRel(condition=[AND(in($17, 'maroon', 
'burnished', 'dim', 'steel', 'navajo', 'chocolate'), between(false, $5, 35, 
+(35, 10)), between(false, $5, +(35, 1), +(35, 15)))]): rowcount = 1.0, 
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1277
                            
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.item]]): rowcount = 
48000.0, cumulative cost = {0}, id = 68
                      HiveProjectRel(ca_address_sk=[$0], ca_street_number=[$2], 
ca_street_name=[$3], ca_city=[$6], ca_zip=[$9]): rowcount = 800000.0, 
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1261
                        
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.customer_address]]):
 rowcount = 800000.0, cumulative cost = {0}, id = 61
                    HiveProjectRel(ca_address_sk=[$0], ca_street_number=[$2], 
ca_street_name=[$3], ca_city=[$6], ca_zip=[$9]): rowcount = 800000.0, 
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 1261
                      
HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.customer_address]]):
 rowcount = 800000.0, cumulative cost = {0}, id = 61
{code}

> CBO : Negate condition underestimates selectivity which results in an 
> in-efficient plan
> ---------------------------------------------------------------------------------------
>
>                 Key: HIVE-8315
>                 URL: https://issues.apache.org/jira/browse/HIVE-8315
>             Project: Hive
>          Issue Type: Bug
>          Components: CBO
>    Affects Versions: 0.14.0
>            Reporter: Mostafa Mokhtar
>            Assignee: Harish Butani
>             Fix For: 0.14.0
>
>         Attachments: HIVE-8315.1.patch
>
>
> For TPC-DS Q64 the predicate cd1.cd_marital_status <> cd2.cd_marital_status 
> under estimate the join selectivity by a huge margin and results in 
> in-efficient join order.
> This is a subset of the logical plan showing that item was joined very last
> {code}
>                                 HiveJoinRel(condition=[=($0, $37)], 
> joinType=[inner]): rowcount = 1.0, cumulative cost = {6.386017602518958E8 
> rows, 0.0 cpu, 0.0 io}, id = 3790
>                                   HiveJoinRel(condition=[=($0, $33)], 
> joinType=[inner]): rowcount = 1.0, cumulative cost = {6.386017582518958E8 
> rows, 0.0 cpu, 0.0 io}, id = 3067
>                                     HiveFilterRel(condition=[<>($30, $32)]): 
> rowcount = 1.8252236387887635, cumulative cost = {6.386017554266721E8 rows, 
> 0.0 cpu, 0.0 io}, id = 1153
>                                       HiveProjectRel(ss_item_sk=[$2], 
> ss_customer_sk=[$3], ss_cdemo_sk=[$4], ss_hdemo_sk=[$5], ss_addr_sk=[$6], 
> ss_store_sk=[$7], ss_promo_sk=[$8], ss_ticket_number=[$9], 
> ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$12], 
> ss_sold_date_sk=[$13], sr_item_sk=[$0], sr_ticket_number=[$1], 
> c_customer_sk=[$23], c_current_cdemo_sk=[$24], c_current_hdemo_sk=[$25], 
> c_current_addr_sk=[$26], c_first_shipto_date_sk=[$27], 
> c_first_sales_date_sk=[$28], d_date_sk=[$14], d_year=[$15], d_date_sk0=[$29], 
> d_year0=[$30], d_date_sk1=[$31], d_year1=[$32], s_store_sk=[$18], 
> s_store_name=[$19], s_zip=[$20], cd_demo_sk=[$16], cd_marital_status=[$17], 
> cd_demo_sk0=[$21], cd_marital_status0=[$22]): rowcount = 
> 3.6246005783468924E7, cumulative cost = {6.386017554266721E8 rows, 0.0 cpu, 
> 0.0 io}, id = 2312
>                                         HiveJoinRel(condition=[AND(=($2, $0), 
> =($9, $1))], joinType=[inner]): rowcount = 3.6246005783468924E7, cumulative 
> cost = {6.386017554266721E8 rows, 0.0 cpu, 0.0 io}, id = 2310
>                                           HiveProjectRel(sr_item_sk=[$1], 
> sr_ticket_number=[$8]): rowcount = 5.5578005E7, cumulative cost = {0.0 rows, 
> 0.0 cpu, 0.0 io}, id = 912
>                                             
> HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.store_returns]]): 
> rowcount = 5.5578005E7, cumulative cost = {0}, id = 62
>                                           HiveJoinRel(condition=[=($1, $21)], 
> joinType=[inner]): rowcount = 1.2950939439433252E7, cumulative cost = 
> {5.700728109872389E8 rows, 0.0 cpu, 0.0 io}, id = 2308
>                                             HiveJoinRel(condition=[=($5, 
> $16)], joinType=[inner]): rowcount = 5491530.921341597, cumulative cost = 
> {5.629812800658973E8 rows, 0.0 cpu, 0.0 io}, id = 2301
>                                               HiveJoinRel(condition=[=($2, 
> $14)], joinType=[inner]): rowcount = 5491530.921341597, cumulative cost = 
> {5.574895371445558E8 rows, 0.0 cpu, 0.0 io}, id = 2299
>                                                 HiveJoinRel(condition=[=($11, 
> $12)], joinType=[inner]): rowcount = 5491530.921341597, cumulative cost = 
> {5.500772062232143E8 rows, 0.0 cpu, 0.0 io}, id = 1898
>                                                   
> HiveProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_cdemo_sk=[$3], 
> ss_hdemo_sk=[$4], ss_addr_sk=[$5], ss_store_sk=[$6], ss_promo_sk=[$7], 
> ss_ticket_number=[$8], ss_wholesale_cost=[$10], ss_list_price=[$11], 
> ss_coupon_amt=[$18], ss_sold_date_sk=[$22]): rowcount = 5.50076554E8, 
> cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io}, id = 909
>                                                     
> HiveTableScanRel(table=[[tpcds_bin_partitioned_orc_200_orig.store_sales]]): 
> rowcount = 5.50076554E8, cumulative cost = {0}, id = 55{code}
> Query 
> {code}
> select cs1.product_name ,cs1.store_name ,cs1.store_zip ,cs1.b_street_number 
> ,cs1.b_streen_name ,cs1.b_city
>      ,cs1.b_zip ,cs1.c_street_number ,cs1.c_street_name ,cs1.c_city 
> ,cs1.c_zip ,cs1.syear ,cs1.cnt
>      ,cs1.s1 ,cs1.s2 ,cs1.s3
>      ,cs2.s1 ,cs2.s2 ,cs2.s3 ,cs2.syear ,cs2.cnt
> from
> (select i_product_name as product_name ,i_item_sk as item_sk ,s_store_name as 
> store_name
>      ,s_zip as store_zip ,ad1.ca_street_number as b_street_number 
> ,ad1.ca_street_name as b_streen_name
>      ,ad1.ca_city as b_city ,ad1.ca_zip as b_zip ,ad2.ca_street_number as 
> c_street_number
>      ,ad2.ca_street_name as c_street_name ,ad2.ca_city as c_city ,ad2.ca_zip 
> as c_zip
>      ,d1.d_year as syear ,d2.d_year as fsyear ,d3.d_year as s2year ,count(*) 
> as cnt
>      ,sum(ss_wholesale_cost) as s1 ,sum(ss_list_price) as s2 
> ,sum(ss_coupon_amt) as s3
>   FROM   store_sales
>         JOIN store_returns ON store_sales.ss_item_sk = 
> store_returns.sr_item_sk and store_sales.ss_ticket_number = 
> store_returns.sr_ticket_number
>         JOIN customer ON store_sales.ss_customer_sk = customer.c_customer_sk
>         JOIN date_dim d1 ON store_sales.ss_sold_date_sk = d1.d_date_sk
>         JOIN date_dim d2 ON customer.c_first_sales_date_sk = d2.d_date_sk 
>         JOIN date_dim d3 ON customer.c_first_shipto_date_sk = d3.d_date_sk
>         JOIN store ON store_sales.ss_store_sk = store.s_store_sk
>         JOIN customer_demographics cd1 ON store_sales.ss_cdemo_sk= 
> cd1.cd_demo_sk
>         JOIN customer_demographics cd2 ON customer.c_current_cdemo_sk = 
> cd2.cd_demo_sk
>         JOIN promotion ON store_sales.ss_promo_sk = promotion.p_promo_sk
>         JOIN household_demographics hd1 ON store_sales.ss_hdemo_sk = 
> hd1.hd_demo_sk
>         JOIN household_demographics hd2 ON customer.c_current_hdemo_sk = 
> hd2.hd_demo_sk
>         JOIN customer_address ad1 ON store_sales.ss_addr_sk = 
> ad1.ca_address_sk
>         JOIN customer_address ad2 ON customer.c_current_addr_sk = 
> ad2.ca_address_sk
>         JOIN income_band ib1 ON hd1.hd_income_band_sk = ib1.ib_income_band_sk
>         JOIN income_band ib2 ON hd2.hd_income_band_sk = ib2.ib_income_band_sk
>         JOIN item ON store_sales.ss_item_sk = item.i_item_sk
>         JOIN
>  (select cs_item_sk
>         ,sum(cs_ext_list_price) as 
> sale,sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit) as refund
>   from catalog_sales JOIN catalog_returns
>   ON catalog_sales.cs_item_sk = catalog_returns.cr_item_sk
>     and catalog_sales.cs_order_number = catalog_returns.cr_order_number
>   group by cs_item_sk
>   having 
> sum(cs_ext_list_price)>2*sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit))
>  cs_ui
> ON store_sales.ss_item_sk = cs_ui.cs_item_sk
>   WHERE  
>          cd1.cd_marital_status <> cd2.cd_marital_status and
>          i_color in ('maroon','burnished','dim','steel','navajo','chocolate') 
> and
>          i_current_price between 35 and 35 + 10 and
>          i_current_price between 35 + 1 and 35 + 15
> group by i_product_name ,i_item_sk ,s_store_name ,s_zip ,ad1.ca_street_number
>        ,ad1.ca_street_name ,ad1.ca_city ,ad1.ca_zip ,ad2.ca_street_number
>        ,ad2.ca_street_name ,ad2.ca_city ,ad2.ca_zip ,d1.d_year ,d2.d_year 
> ,d3.d_year
> ) cs1
> JOIN
> (select i_product_name as product_name ,i_item_sk as item_sk ,s_store_name as 
> store_name
>      ,s_zip as store_zip ,ad1.ca_street_number as b_street_number 
> ,ad1.ca_street_name as b_streen_name
>      ,ad1.ca_city as b_city ,ad1.ca_zip as b_zip ,ad2.ca_street_number as 
> c_street_number
>      ,ad2.ca_street_name as c_street_name ,ad2.ca_city as c_city ,ad2.ca_zip 
> as c_zip
>      ,d1.d_year as syear ,d2.d_year as fsyear ,d3.d_year as s2year ,count(*) 
> as cnt
>      ,sum(ss_wholesale_cost) as s1 ,sum(ss_list_price) as s2 
> ,sum(ss_coupon_amt) as s3
>   FROM   store_sales
>         JOIN store_returns ON store_sales.ss_item_sk = 
> store_returns.sr_item_sk and store_sales.ss_ticket_number = 
> store_returns.sr_ticket_number
>         JOIN customer ON store_sales.ss_customer_sk = customer.c_customer_sk
>         JOIN date_dim d1 ON store_sales.ss_sold_date_sk = d1.d_date_sk
>         JOIN date_dim d2 ON customer.c_first_sales_date_sk = d2.d_date_sk 
>         JOIN date_dim d3 ON customer.c_first_shipto_date_sk = d3.d_date_sk
>         JOIN store ON store_sales.ss_store_sk = store.s_store_sk
>         JOIN customer_demographics cd1 ON store_sales.ss_cdemo_sk= 
> cd1.cd_demo_sk
>         JOIN customer_demographics cd2 ON customer.c_current_cdemo_sk = 
> cd2.cd_demo_sk
>         JOIN promotion ON store_sales.ss_promo_sk = promotion.p_promo_sk
>         JOIN household_demographics hd1 ON store_sales.ss_hdemo_sk = 
> hd1.hd_demo_sk
>         JOIN household_demographics hd2 ON customer.c_current_hdemo_sk = 
> hd2.hd_demo_sk
>         JOIN customer_address ad1 ON store_sales.ss_addr_sk = 
> ad1.ca_address_sk
>         JOIN customer_address ad2 ON customer.c_current_addr_sk = 
> ad2.ca_address_sk
>         JOIN income_band ib1 ON hd1.hd_income_band_sk = ib1.ib_income_band_sk
>         JOIN income_band ib2 ON hd2.hd_income_band_sk = ib2.ib_income_band_sk
>         JOIN item ON store_sales.ss_item_sk = item.i_item_sk
>         JOIN
>  (select cs_item_sk
>         ,sum(cs_ext_list_price) as 
> sale,sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit) as refund
>   from catalog_sales JOIN catalog_returns
>   ON catalog_sales.cs_item_sk = catalog_returns.cr_item_sk
>     and catalog_sales.cs_order_number = catalog_returns.cr_order_number
>   group by cs_item_sk
>   having 
> sum(cs_ext_list_price)>2*sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit))
>  cs_ui
> ON store_sales.ss_item_sk = cs_ui.cs_item_sk
>   WHERE  
>          cd1.cd_marital_status <> cd2.cd_marital_status and
>          i_color in ('maroon','burnished','dim','steel','navajo','chocolate') 
> and
>          i_current_price between 35 and 35 + 10 and
>          i_current_price between 35 + 1 and 35 + 15
> group by i_product_name ,i_item_sk ,s_store_name ,s_zip ,ad1.ca_street_number
>        ,ad1.ca_street_name ,ad1.ca_city ,ad1.ca_zip ,ad2.ca_street_number
>        ,ad2.ca_street_name ,ad2.ca_city ,ad2.ca_zip ,d1.d_year ,d2.d_year 
> ,d3.d_year
> ) cs2
> ON cs1.item_sk=cs2.item_sk
> where 
>      cs1.syear = 2000 and
>      cs2.syear = 2000 + 1 and
>      cs2.cnt <= cs1.cnt and
>      cs1.store_name = cs2.store_name and
>      cs1.store_zip = cs2.store_zip
> order by cs1.product_name ,cs1.store_name ,cs2.cnt
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to