select w.customer_id,w.trade_time,w.card_id
from
(select b.customer_id,to_char(a.trade_time,'yyyymmdd') trade_time,
       a.card_id    
from ecc_bj.ecc_trade_gas partition(trade200607) a,ecc_bj.ecc_account_card b
where a.card_id = b.card_id
   and b.customer_id in (select customer_id from ecc_bj.ecc_account_card  group by customer_id,card_id having count(customer_id) = 1) 
group by to_char(trade_time,'yyyymmdd'),b.customer_id,a.station_id,a.card_id
having  count(a.station_id) >= 3) w
group by w.card_id
having count(w.card_id) >= 2 
请各位高手看一下,这段那里有错啊,运行的时候提示有错!

解决方案 »

  1.   

    select w.customer_id, w.trade_time, w.card_id
      from (select b.customer_id,
                   to_char(a.trade_time, 'yyyymmdd') trade_time,
                   a.card_id
              from ecc_bj.ecc_trade_gas    ------------少,号
                   partition(trade200607) a,
                   ecc_bj.ecc_account_card b
             where a.card_id = b.card_id and
                   b.customer_id in
                   (select customer_id
                      from ecc_bj.ecc_account_card
                     group by customer_id, card_id
                    having count(customer_id) = 1)
             group by to_char(trade_time, 'yyyymmdd'),
                      b.customer_id,
                      a.station_id,
                      a.card_id
            having count(a.station_id) >= 3) w
     group by w.card_id
    having count(w.card_id) >= 2
      

  2.   

    1. select w.customer_id,w.trade_time,w.card_id--w.customer_id,w.trade_time字段不应该出现
    from (...)w
    group by w.card_id  --
    having count(w.card_id) >= 2