【问题标题】:How to execute NOT in more than once如何多次执行 NOT
【发布时间】:2021-09-19 20:45:57
【问题描述】:

我必须以以下格式获取 user_id,我必须在 presto 中多次使用 NOT IN。它给出了以下错误-

查询失败 (#20210709_131827_01150_v2wkt):第 15:1 行:输入“选择”不匹配。期望:'('

谁能帮我纠正以下更改输入的查询。

select user_id from gold.order_master_bi

where  portfolio  = 'Women Sarees'
and  order_date>=current_date-interval '30' day

and  user_id NOT IN

(select user_id,cast(year||'-'||month||'-'||day as date)
from silver.mixpanel_android__add_to_cart_clicked

where cast(year||'-'||month||'-'||day as date)=DATE('2021-07-09')

AND user_id NOT IN

select user_id
FROM gold.order_master_bi
where order_date=DATE('2021-07-09'))

【问题讨论】:

  • 它在您的错误消息中说:第 15:1 行:不匹配的输入“选择”。期望:'('
  • 您可能需要提供样本数据、所需结果以及您想要做什么的说明。可能有其他方法可以编写查询。
  • 基本上我试图获取那些已将产品添加到购物车(添加到购物车表)但尚未下订单(order_master)的用户的信息

标签: sql presto


【解决方案1】:

NOT IN内的语句之间应该是逗号

select user_id from gold.order_master_bi

where  portfolio  = 'Women Sarees'
and  order_date>=current_date-interval '30' day

and  user_id NOT IN

(select user_id,cast(year||'-'||month||'-'||day as date)
from silver.mixpanel_android__add_to_cart_clicked

where cast(year||'-'||month||'-'||day as date)=DATE('2021-07-09')

,select user_id
FROM gold.order_master_bi
where order_date=DATE('2021-07-09'))

【讨论】:

    【解决方案2】:

    如果我知道你做对了什么,就会有这些问题:

    1. NOT IN 子查询不应包含额外的列
    2. 不见了)

    格式化你的代码,有助于理解和调试

        select user_id 
          from gold.order_master_bi
         where portfolio  = 'Women Sarees'
           and order_date>=current_date-interval '30' day
           and user_id NOT IN (select user_id 
                                 from silver.mixpanel_android__add_to_cart_clicked
                                where cast(year||'-'||month||'-'||day as date)=DATE('2021-07-09') 
                                  and user_id NOT IN (select user_id
                                                        from gold.order_master_bi
                                                       where order_date=DATE('2021-07-09')
                                                     )
                              )
    

    【讨论】:

      猜你喜欢
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多