我从同一个表a
中提取所有子查询,但需要列b.7dayclicks
,c.7dayclicks
和d.14dayclicks
中的信息。
查询类似于:
select
a.higher_tier_id,
a.lower_tier_id,
b.7dayclicks,
c.7dayclicks,
d.14dayclicks
from
a,
(select higher_tier_id, 7dayclicks
from a
where day >= curdate() - 7
group by higher_tier_id) b,
(select lower_tier_id, 7dayclicks
from a where day >= curdate() - 7
group by lower_tier_id) c,
(select lower_tier_id, 14dayclicks
from a where day >= curdate() - 14
group by lower_tier_id) d
where
day >= curdate() - 3
and a.higher_tier_id = b.higher_tier_id
and a.lower_tier_id = c.lower_tier_id
and a.lower_tier_id = d.lower_tier_id
结果需要很长时间才能运行。我试图让它更有效率。任何帮助将不胜感激。
我确实认为绝对有一种方法可以将所有内容放在一起而不需要任何连接,但我只是无法找到...
答案 0 :(得分:0)
这样的事情会起作用吗?您可以获得更高和更低级别的ID,然后是7天点击和14天点击的总和。
select
a.higher_tier_id,
a.lower_tier_id,
SUM(CASE WHEN day >= curdate() - 7 THEN 7dayclicks ELSE 0 END),
SUM(CASE WHEN day >= curdate() - 14 THEN 14dayclicks ELSE 0 END)
FROM a
GROUP BY a.higher_tier_id, a.lower_tier_id