计算有多少种不同的组合加起来等于某个值
Count how many different combinations add up to certain value
我有以下 table.
CREATE TABLE product (
id INTEGER PRIMARY KEY,
name TEXT,
price INT
);
我需要找出总价为 15 的 2 个产品组合的数量。
相同的组合只能使用一次,例如,如果使用了苹果+柠檬组合,柠檬+苹果就不能再使用了。 apple+apple 也是一个有效的组合。
这是我目前得到的代码,但结果相去甚远。知道可以执行此操作的查询吗?
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;
这与您的查询几乎相同,但产品名称的条件不相等,因此每个元组只计算一次 - 这似乎是您要求的。
我有以下 table.
CREATE TABLE product (
id INTEGER PRIMARY KEY,
name TEXT,
price INT
);
我需要找出总价为 15 的 2 个产品组合的数量。
相同的组合只能使用一次,例如,如果使用了苹果+柠檬组合,柠檬+苹果就不能再使用了。 apple+apple 也是一个有效的组合。
这是我目前得到的代码,但结果相去甚远。知道可以执行此操作的查询吗?
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;
这与您的查询几乎相同,但产品名称的条件不相等,因此每个元组只计算一次 - 这似乎是您要求的。