我目前正在学习SQL的基础知识。我尝试过这个查询,但结果恰好只适用于其中一行(FireBow)。我该如何解决?
CREATE TABLE store (id_prod INTEGER PRIMARY KEY AUTOINCREMENT, prod TEXT, price REAL, q REAL);
INSERT INTO store (prod, price, q) VALUES ("DragonSword", 1500.0, 4.0);
INSERT INTO store (prod, price, q) VALUES ("MagicOrb", 950.0, 7.0);
INSERT INTO store (prod, price, q) VALUES ("FireBow", 500.0, 5.0);
UPDATE store SET q=q-3 WHERE prod="FireBow";
SELECT prod, price, q, ((price*q)/SUM(price*q)) AS prec_worth
FROM store;
答案 0 :(得分:0)
如果您没有使用 group by 语句,那么它只会显示一条记录。 而不是直接在查询中使用 SUM 。使用下面的子查询。
SELECT prod, price, q, ((price*q)/(select sum(price*q) from store s)) AS prec_worth
FROM store t;