Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何消除查询中的某些值_Mysql_Sql_Snowflake Cloud Data Platform - Fatal编程技术网

Mysql 如何消除查询中的某些值

Mysql 如何消除查询中的某些值,mysql,sql,snowflake-cloud-data-platform,Mysql,Sql,Snowflake Cloud Data Platform,我正试图在过去30天内得到一笔交易。但是,我还需要确保没有KYC:也要传递对帐户的评论 我在Snowflake中,我试着运行各种子查询和联接。我正式被卡住了 SELECT SUM(amount_base_unit) as GPV, p.unit_token FROM PAYMENTS_DW.PUBLIC.PAYMENT_TRANSACTIONS as p WHERE country_code='US' AND NOT EXISTS ( SELECT c.target_token FRO

我正试图在过去30天内得到一笔交易。但是,我还需要确保没有KYC:也要传递对帐户的评论

我在Snowflake中,我试着运行各种子查询和联接。我正式被卡住了


SELECT SUM(amount_base_unit) as GPV, p.unit_token FROM PAYMENTS_DW.PUBLIC.PAYMENT_TRANSACTIONS as p
WHERE country_code='US'
AND NOT EXISTS (
    SELECT c.target_token FROM REGULATOR.RAW_OLTP.COMMENTS as c
    WHERE c.text ILIKE '%#KYC:Pass%'
    and c.updated_at < '2019-10-11'
)
AND is_GPV='1'
AND PAYMENT_TRX_RECOGNIZED_AT BETWEEN dateadd(month,-3,current_timestamp()) AND dateadd(month,0,current_timestamp())
GROUP BY unit_token
HAVING SUM(amount_base_unit) >= 10000000
LIMIT 5
;

那么,更近一点,我想?

这个子查询:

NOT EXISTS (SELECT c.target_token
            FROM REGULATOR.RAW_OLTP.COMMENTS as c
            WHERE c.text ILIKE '%#KYC:Pass%' AND
                  c.updated_at < '2019-10-11'
           )
与外部查询不相关。因此,它为所有行返回true或false。我想你需要一个关联从句。我不知道具体是什么,但也许:

NOT EXISTS (SELECT 1
            FROM REGULATOR.RAW_OLTP.COMMENTS c
            WHERE c.target_token = p.unit_token AND
                  c.text ILIKE '%#KYC:Pass%' AND
                  c.updated_at < '2019-10-11'
           )
此子查询:

NOT EXISTS (SELECT c.target_token
            FROM REGULATOR.RAW_OLTP.COMMENTS as c
            WHERE c.text ILIKE '%#KYC:Pass%' AND
                  c.updated_at < '2019-10-11'
           )
与外部查询不相关。因此,它为所有行返回true或false。我想你需要一个关联从句。我不知道具体是什么,但也许:

NOT EXISTS (SELECT 1
            FROM REGULATOR.RAW_OLTP.COMMENTS c
            WHERE c.target_token = p.unit_token AND
                  c.text ILIKE '%#KYC:Pass%' AND
                  c.updated_at < '2019-10-11'
           )

考虑到Gordon的观点,不存在需要考虑的相关子查询,snowflake有时表现得很奇怪

切换到CTE并通过IS NULL检查失败的左连接是否有帮助

WITH kyc_pass_com AS (
    SELECT DISTINCT target_token
        FROM REGULATOR.RAW_OLTP.COMMENTS 
        WHERE text ILIKE '%#KYC:Pass%' 
            AND updated_at < '2019-10-11'
)
SELECT SUM(amount_base_unit) as GPV
    ,p.unit_token
FROM PAYMENTS_DW.PUBLIC.PAYMENT_TRANSACTIONS AS p
LEFT JOIN kyc_pass_com AS c
    ON c.target_token = p.unit_token
WHERE p.country_code='US'
    AND c.target_token IS NULL
    AND is_GPV='1'
    AND PAYMENT_TRX_RECOGNIZED_AT BETWEEN dateadd(month,-3,current_timestamp()) AND current_timestamp()
GROUP BY unit_token
HAVING SUM(amount_base_unit) >= 10000000
LIMIT 5;

考虑到Gordon的观点,不存在需要考虑的相关子查询,snowflake有时表现得很奇怪

切换到CTE并通过IS NULL检查失败的左连接是否有帮助

WITH kyc_pass_com AS (
    SELECT DISTINCT target_token
        FROM REGULATOR.RAW_OLTP.COMMENTS 
        WHERE text ILIKE '%#KYC:Pass%' 
            AND updated_at < '2019-10-11'
)
SELECT SUM(amount_base_unit) as GPV
    ,p.unit_token
FROM PAYMENTS_DW.PUBLIC.PAYMENT_TRANSACTIONS AS p
LEFT JOIN kyc_pass_com AS c
    ON c.target_token = p.unit_token
WHERE p.country_code='US'
    AND c.target_token IS NULL
    AND is_GPV='1'
    AND PAYMENT_TRX_RECOGNIZED_AT BETWEEN dateadd(month,-3,current_timestamp()) AND current_timestamp()
GROUP BY unit_token
HAVING SUM(amount_base_unit) >= 10000000
LIMIT 5;

谢谢你的回答!不幸的是,它仍然在返回那个该死的KYCPass评论。我希望我的解释是正确的。我是新手,自学成才。它必须和“%KYC:Pass%”完全一样还是可以改成像“%KYC%Pass%”一样?@SirKefka。对c.text i(如“%KYC:Pass%”和c.updated_at<'2019-10-11'进行筛选)的查询是否返回任何内容?它返回任何内容。看起来是聚合函数把事情搞砸了。作为一个实验,我把查询顺序调高了一点:谢谢你的回答!不幸的是,它仍然在返回那个该死的KYCPass评论。我希望我的解释是正确的。我是新手,自学成才。它必须和“%KYC:Pass%”完全一样还是可以改成像“%KYC%Pass%”一样?@SirKefka。对c.text i(如“%KYC:Pass%”和c.updated_at<'2019-10-11'进行筛选)的查询是否返回任何内容?它返回任何内容。看起来是聚合函数把事情搞砸了。作为一个实验,我把查询顺序调高了一点:我怀疑这个社区80%以上的人是“自学成才”的。我怀疑这个社区80%以上的人是“自学成才”的。看见