计算不同的组合加起来有多少值



我有下表。

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;

这与您的查询几乎相同,但产品名称上有一个不等式条件,因此每个元组只计算一次——这似乎是您所要求的。

最新更新