我有下表。
CREATE TABLE product (
id INTEGER PRIMARY KEY,
name TEXT,
price INT
);
我需要找出2种产品组合的数量,加起来总共15种。
相同的组合只能使用一次,所以例如,如果使用了苹果+柠檬的组合,柠檬+苹果就不能再使用了。苹果+苹果也是一个有效的组合。
这是我到目前为止得到的代码,但结果还很远。你知道一个可以做到这一点的查询吗?
SELECT COUNT(*)
FROM
Product p1, Product p2
WHERE
p1.price + p2.price = 10;
我想你想要:
select count(*)
from product p1
inner join product p2 on p1.id < p2.id
where p1.price + p2.price = 10;
这与您的查询几乎相同,但产品名称上有一个不等式条件,因此每个元组只计算一次——这似乎是您所要求的。