【发布时间】:2017-01-02 17:26:00
【问题描述】:
我有一个具有 LEFT JOIN、分组依据和 ROLLUP 的查询,如下所示:
Select * from
(
Select user_agent,
value,
recoqty,
count(recoqty) as C
from august_2016_search_stats SS
LEFT JOIN august_2016_extra E
on (SS.id = E.stats_id and E.key = 'personalized')
where time >= '2016-08-22 00:00:00' and
time <= '2016-08-22 23:59:59' and
query_type = 'myfeed' and
recoqty = 'topics'
group by recoqty,
user_agent,
value
with ROLLUP
having recoqty is not null
) D
order by C desc;
结果如下:
+------------+-------+---------+------+
| user_agent | value | recoqty | C |
+------------+-------+---------+------+
| NULL | NULL | topics | 1330 |
| abscdef | NULL | topics | 1330 |
| abscdef | NULL | topics | 1285 |
| abscdef | 1 | topics | 25 |
| abscdef | 0 | topics | 20 |
+------------+-------+---------+------+
这里,值 (NULL 1285) 是由于 LEFT JOIN,而值 (NULL 1330) 是由于汇总。
但是,有没有办法只为LEFT JOIN 而不是ROLLUP 替换NULL 值?
【问题讨论】: