我正在尝试在 Athena 中编写一个查询,其中我获得了 unique_usage_ids 列表,其中 unique_usage_start_date 至少早于contract_sign_date 1 个月
我知道如何编写查询来查找我正在寻找的某个特定实例:
SELECT customer_id, unique_usage_id
FROM customer_data
WHERE customer_id = '12345'
AND unique_usage_start_date < (SELECT contract_sign_date - interval '1' month
FROM contract_data WHERE customer_id = '12345)
运行上述查询,我得到了 customer_id '12345' 所需的结果:
客户 ID | 唯一_用法_id |
---|---|
12345 | ABGSHDVBAHJD |
12345 | NNSJABDGIAGIQ |
12345 | PQSAUIDHUIADH |
如何扩展此查询以获取 customer_id 和 unique_usage_id 的所有情况,其中 unique_usage_start_date 至少早于contract_sign_date 1 个月
如果我删除子句 customer_id where 子句:
SELECT customer_id, unique_usage_id
FROM customer_data
WHERE unique_usage_start_date < (SELECT contract_sign_date - interval '1' month
FROM contract_data)
查询将不会运行。我收到错误:SUBQUERY_MULTIPLE_ROWS:标量子查询已返回多行。
每个 customer_id 都有自己独特的contract_sign_date 和 unique_usage_start_date。我试图找到满足子查询中条件的所有 customer_ids 和 unique_usage_ids 的列表。当我插入单个 customer_id 时,我得到了想要的结果,但我想获取整个数据库的完整列表。
先进行连接,然后进行过滤,而不使用子查询。
类似:
SELECT cusd.customer_id,
cusd.unique_usage_id
FROM customer_data cusd
JOIN contract_data cond on cond.customer_id = cusd.customer_id
WHERE cusd.unique_usage_start_date < (cond.contract_sign_date - interval '1' month)