如何在 SQLite 中将 INTERSECT 与 COUNT 一起使用?

How to use INTERSECT together with COUNT in SQLite?

我有一个名为 customer_transactions 的 table 和一个名为 blacklist 的 table。 customer_transactions table 有一个名为 atm_name 的列。 两个 table 共享一个名为 id 的唯一密钥。

如何以查询显示我的方式将两个 table 相交

  1. 同时出现在 table 上的客户。
  2. 一个相应的列,显示他们使用 某些 atm 旁边的 atm 名称 (例如:id_1 -- 美国银行 -- 2;id_1 -- 花旗银行 -- 3; id_2 -- 美国银行 -- 1; id_2 -- 花旗银行 -- 4 等等)。

我有这样的东西

SELECT id,
atm_name,
count(atm_name) as atm_count 
FROM customer_transactions 
GROUP BY id, atm_name

如何将此 table 与 黑名单 table 相交并保持我当前的输出?

提前致谢。

您似乎想要加入。假设列 id 关联两个表,并且它是 blacklist 中的唯一键,你可以这样做:

select ct.id, ct.atm_name, count(*) as atm_count 
from customer_transactions ct
inner join blacklist b on b.id = ct.id
group by ct.id, ct.atm_name

您还可以使用 exists 和相关子查询来表达此逻辑:

select ct.id, ct.atm_name, count(*) as atm_count 
from customer_transactions ct
where exists (select 1  from blacklist b where b.id = ct.id)
group by ct.id, ct.atm_name