You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询:如何筛选使用过两种不同货币支付的客户ID

问题描述

现有销售交易表sales_table存储了数十万条交易数据,表结构及样例数据如下:

select customer_id, currency, price
from sales_table

样例数据:

customer_idcurrencyprice
1001CHF50
1001EUR35
1002EUR40
1003AUD25

需求:编写SELECT查询语句,仅返回使用过两种不同货币支付的客户ID,以上述样例数据为例,正确返回结果应为customer_id 1001。


实现查询语句
SELECT customer_id
FROM sales_table
GROUP BY customer_id
HAVING COUNT(DISTINCT currency) = 2;

逻辑说明
  • 先通过GROUP BY customer_id把所有交易按客户ID分组,每个分组对应单个客户的全部交易记录
  • 用COUNT(DISTINCT currency)统计每个客户使用的不重复货币种类,避免同一客户同币种有多笔交易时统计值虚高
  • 通过HAVING子句对分组后的统计结果做过滤,仅保留币种数量恰好为2的客户ID

如果需要查询使用过至少两种不同货币的客户,只需把条件= 2修改为>= 2即可。

内容的提问来源于stack exchange,提问作者Luc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:27:02