[英]SQL query using SUM gworking only on 1 row
I am currently learning the basics of SQL. 我目前正在学习SQL的基础知识。 I have tried this query but the result happened to work for only one of the rows (FireBow).
我已经尝试过该查询,但是结果碰巧仅适用于其中一行(FireBow)。 How do I fix this?
我该如何解决?
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;
If you are not using group by statement then it will show only one record. 如果您未使用group by语句,那么它将仅显示一条记录。 Instead of using SUM directly in query.
而不是直接在查询中使用SUM 。 Use below one with sub query .
在子查询中使用以下一项。
SELECT prod, price, q, ((price*q)/(select sum(price*q) from store s)) AS prec_worth
FROM store t;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.