注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
不明白为什么自己的code有问题,希望高手能指点一下迷津!
# Write your MySQL query statement below
(select
a2.spend_date,
'desktop' platform,
sum(case
when a1.spend_date=a2.spend_date then a1.amount
else 0
end) total_amount,
sum(case
when a1.spend_date=a2.spend_date then 1
else 0
end) total_users
from
(select
*
from
spending
where
platform='desktop'
and (user_id,spend_date) not in
(select
user_id,
spend_date
from
spending
where
platform='mobile')) a1
cross join
(select
distinct spend_date
from
spending) a2
group by a2.spend_date)
union
(select
a2.spend_date,
'mobile' platform,
sum(case
when a1.spend_date=a2.spend_date then a1.amount
else 0
end) total_amount,
sum(case
when a1.spend_date=a2.spend_date then 1
else 0
end) total_users
from
(select
*
from
spending
where
platform='mobile'
and (user_id,spend_date) not in
(select
user_id,
spend_date
from
spending
where
platform='desktop')) a1
cross join
(select
distinct spend_date
from
spending) a2
group by a2.spend_date)
union
(select
a2.spend_date,
'both' platform,
sum(case
when a1.spend_date=a2.spend_date then ta
else 0
end) total_amount,
sum(case
when a1.spend_date=a2.spend_date then ct
else 0
end) total_users
from
(select
user_id,
spend_date,
sum(amount) ta,
count(user_id)/2 ct
from
spending
group by user_id,spend_date
having count(*)=2) a1
cross join
(select
distinct spend_date
from
spending) a2
group by a2.spend_date)
|