SQL 收藏

 group by  , having

实例

我们拥有下面这个 "Orders" 表:                      第16317名

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

现在,我们希望查找订单总金额少于 2000 的客户。

我们使用如下 SQL 语句:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000

结果集类似:

Customer

SUM(OrderPrice)

Carter

1700

 

--------------------------------------------------------------------------------------------------------------------------------------------------

('NXT', 'NXTSTK')为大项

--地区定购大小项的用户明细  
select count(*) from (
select distinct mobile, t.sub_time
  from adc_test.t_subscribe_cmpp t
 where area_id = '745'
   and service_id in ('NXT', 'NXTSTK')
   and sub_status = 1
   and (select 1
          from adc_test.t_subscribe_cmpp
         where mobile = t.mobile
           and service_id <> 'NXT'
           and service_id <> 'NXTSTK'
           and sub_status = 1
           and rownum = 1) = 1
           )
          
--只定大项没定小项的用户明细          
select count(*) from (
select distinct mobile, t.sub_time
  from adc_test.t_subscribe_cmpp t
 where area_id = '745'
   and service_id in ('NXT', 'NXTSTK')
   and sub_status = 1
   and (select 1
          from adc_test.t_subscribe_cmpp
         where mobile = t.mobile
           and service_id <> 'NXT'
           and service_id <> 'NXTSTK'
           and sub_status = 1
           and rownum = 1) is null
           )
          
          
--只定小项没定大项的用户      
select count(*) from (
select distinct mobile, t.sub_time
  from adc_test.t_subscribe_cmpp t
 where area_id = '745'
   and service_id <> 'NXT'
   and service_id <> 'NXTSTK'
   and sub_status = 1
   and (select 1
          from adc_test.t_subscribe_cmpp
         where mobile = t.mobile
           and service_id in ('NXT', 'NXTSTK')
           and sub_status = 1
           and rownum = 1) is null
           )

 

 


--在号码中查询没有定制NXT业务
Select * From tbl_boss_nxt t Where
 (Select 1 From adc_test.t_subscribe_cmpp Where

mobile=t.mobile2 and rownum = 1 And   area_id = '735' And

sub_time>=to_date('2010-7-13 00:00','YYYY-MM-DD HH24:MI:SS') 

and sub_time<=to_date('2010-7-19 00:00','YYYY-MM-DD

HH24:MI:SS')) Is Null

--查询ASSESSDB表中已经定了大小项的
 select mobile from ASSESSDB Where mobile In (  
select distinct mobile
  from adc_test.t_subscribe_cmpp t
 where area_id = '745'
   and service_id in ('NXT', 'NXTSTK')
   and sub_status = 1   
   and (select 1
          from adc_test.t_subscribe_cmpp
         where mobile = t.mobile
           and service_id <> 'NXT'
           and service_id <> 'NXTSTK'
           and sub_status = 1
           and rownum = 1) = 1
           )

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值