我尝试了两种不同的查询方法,但我收到的第一个查询的Table太大,第二个查询执行时超出了资源...
这些查询:
SELECT COUNT(DISTINCT(s_pageview_id)) as total
FROM impressions.tbl_impressions_201405
WHERE i_browser IN (1)
AND fk_i_id_tbl_vertical IN (1)
AND i_section IN (1)
AND s_ads_list != ''
AND b_is_human = true
AND DATE(dt_date) = '2014-05-28'
AND s_pageview_id NOT IN (
SELECT s_pageview_id
FROM impressions.tbl_impressions_201405
WHERE i_section IN (26,27,83,96)
AND i_browser IN (1)
AND fk_i_id_tbl_vertical IN (1)
AND DATE(dt_date) = '2014-05-28'
AND s_ads_list != ''
AND b_is_human = true
)第二个查询:
SELECT COUNT(*) AS total
FROM impressions.tbl_impressions_201405 as impressions_1
LEFT OUTER JOIN EACH impressions.tbl_impressions_201405 as impressions_2
ON impressions_1.s_pageview_id = impressions_2.s_pageview_id
WHERE impressions_2.i_browser IN (1)
AND impressions_2.fk_i_id_tbl_vertical IN (1)
AND impressions_2.i_section IN (1)
AND impressions_2.b_is_human = true
AND DATE(impressions_2.dt_date) = '2014-05-28'
AND impressions_1.i_section IN (26,27,83,96)你知道有其他方法可以尝试一下吗?!
非常感谢你..。
发布于 2015-11-23 15:48:00
你的问题严重缺乏元数据。你的表有多大,第一个表中的连接在哪里,等等。但是:
1)尝试JOIN EACH。您可以使用this visualisation as a guide来更具体地处理连接。
2)尝试保存表并允许较大的结果。

https://stackoverflow.com/questions/23942162
复制相似问题