消息关闭
    暂无新消息!
求助1:想查wanchengdan,liushui,butie的环比.
select b.city, b.busi_name,
count(if(a.order_status=9,a.order_id,null))as 'wanchengdan',
sum(if(a.order_status=9,real_total_price,0))/1000 as 'liushui',
sum(if(order_status=9,ifnull(discount_baidufee_price,0),0))/1000 as 'butie',
sum(if(order_status=9,ifnull(shop_butie,0),0))/1000 as 'shanghubutie',
sum(if(a.order_status=9,real_total_price,0))/sum(if(order_status=9,ifnull(discount_baidufee_price,0)+ifnull(discount_fanquan,0),0)) as 'roi'
from fact_order a,dim_business b 
where a.shop_id=b.shop_id
and a.break_type=0 
and a.order_day_key between 20161104 and 20161110
and b.is_test=0 
and b.ka_extend_lable_id=10
group by 1,2

求助2.aoi是商圈,busi_name是店名,想查所有商圈订单量排名前十的店。
select b.city,b.aoi, b.busi_name,
count(if(a.order_status=9,a.order_id,null))as 'wanchengdan'
from fact_order a,dim_business b 
where a.shop_id=b.shop_id
and a.break_type=0 
and a.order_day_key between 20161111 and 20161117
and b.is_test=0 
group by b.city,b.aoi, b.busi_name 



跪谢各位大神...

6个回答

︿ 3
1.环比,那么就是这个查询条件改成上个月的,两个对应的值比较。
2.group by 商圈,order by 排序 就是partition by 商圈 order by 排名,不知道mysql中是否有。
︿ 1
二题: 你先把你上面的结果放到临时表里面
然后用rank()over() as id   然后 WHERE id<11
︿ 1
count(if(a.order_status=9,a.order_id,null))as 'wanchengdan'

这是个查完成单的语句,想查环比上周的情况,现在不会写

这是第一题哒


第二题怎么用捏?
︿ 0
第一题,没看懂


第二题,考虑一下,使用 row_number 函数;