簡體   English   中英

使用嵌套的WHERE子句?

[英]Using nested WHERE clause?

SELECT ymd, 
       creative_id, 
       sum(imps) as imps, 
       sum(booked_revenue_dollars) as booked_rev
  FROM agg_dw_advertiser_publisher_analytics_adjusted
 WHERE buyer_member_id=456
   AND (sum(imps) > 500 WHERE ymd > current_date() - 14) #this part is wrong
 GROUP BY 1,2
HAVING min(ymd) < current_date() - 14
 ORDER BY 2,1 ASC;

ymd =年/月/日

我試圖過濾掉creative_id ,其中字段imps的總和在過去2周中總計少於500。 我顯然沒有正確執行此操作,但是嘗試將其作為附加的HAVING子句以及子查詢。 我究竟做錯了什么?

沒有這樣的概念稱為Nested WHERE 您可以像這樣修改您的HAVING

SELECT creative_id, 
       sum(imps) as imps, 
       sum(booked_revenue_dollars) as booked_rev
  FROM agg_dw_advertiser_publisher_analytics_adjusted
 WHERE buyer_member_id=456
 GROUP BY creative_id
HAVING sum(imps) > 500 AND min(ymd) > current_date() - 14
 ORDER BY 2,1 ASC;

這樣的事情(在我的頭頂)

SELECT ymd, creative_id, 
       sq.imps as imps,
       sq.booked_rev as booked_rev
  FROM agg_dw_advertiser_publisher_analytics_adjusted a
  INNER JOIN 
      (
       SELECT creative_id, sum(imps) as imps, sum(booked_revenue_dollars) as booked_rev
       FROM agg_dw_advertiser_publisher_analytics_adjusted
       WHERE buyer_member_id=456 and ymd > current_date() - 14
       GROUP BY creative_id
      ) as sq
    ON  a.creative_id = sq.creative_id
 WHERE buyer_member_id=456 and sq.imps > 500 and ymd > current_date() - 14
 ORDER BY ymd,creative_id ASC;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM