消息关闭
    暂无新消息!
/images/editorUpload/17-07/uploadImg_746051499806808.jpg" alt="" />

6个回答

︿ 0
重复购买的用户,只算一次

;with t as
(
    select T1.deal_id, T1.settlement_price, T2.order_id, T2.[uid] 
from deal as T1
        left join [order] as T2
        on T1.deal_id = T2.deal_id
    where T2.create_tim <= T1.deal_expire_time  
        and T2.create_tim >= T1.deal_start_time
        and T1.deal_id = '3423729'
)
select t.deal_id[团单ID], t.settlement_price[结算价], 
       count(t.order_id) as [订单数], 
       count(T2.cuid) as [用户数] from t 
join (
    select deal_id, count([uid]) as cuid from (select deal_id, [uid] from t group by deal_id, [uid])
) as T2 
on T1.deal_id = T2.deal_id


均价不知道怎么算了....   从你表结构上来看,  deal 与order 表时一对多的关系,  将价格设计在 deal 表, 则每个deal 期间, 只有一个价格了, 也就不存在啥平均价吧...
︿ 0
建议转Oracle版提问, Oracle语法与SQL Server语法是有差别的,
这里大多数人给你的是SQL Server语法.