仅在1行使用SUM gworking的SQL查询

时间:2017-05-06 08:54:30

标签: sql

我目前正在学习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;

1 个答案:

答案 0 :(得分:0)

如果您没有使用 group by 语句,那么它只会显示一条记录。 而不是直接在查询中使用 SUM 。使用下面的子查询。

SELECT prod, price, q, ((price*q)/(select sum(price*q) from store s)) AS prec_worth
FROM store t;