简体   繁体   English

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM