sql - 如何在 ORDER BY 和 LIMIT 之后获得一列的总和?
问题描述
sql:
SELECT instock.rating
FROM instock
JOIN products
ON instock.code_id=products.code
WHERE products.brand="Adidas"
ORDER BY -instock.rating
LIMIT 5;
例如:返回:5 5 6 6 7
在 Where、Order By 和 Limit 之后,我需要 SUM(i.rating),返回 5+ 5+ 6+ 6+ 7。
ORDER BY 响应后包含大约 200 行。我的尝试示例:1:
SELECT SUM(instock.rating)
FROM instock
JOIN products
ON instock.code_id=products.code
WHERE products.brand="Adidas"
ORDER BY -instock.rating
LIMIT 5;
返回,值:3000,所以,SUM 所有查询。2:
SELECT SUM(DISTINCT instock.rating)
FROM instock
JOIN products
ON instock.code_id=products.code
WHERE products.brand="Adidas"
ORDER BY -instock.rating
LIMIT 5;
返回:5+ 6+ 7== 19,所以,SUM 单 i。
如何从第一个 sql 示例中获取值:5+ 5+ 6+ 6+ 7 = 29?
解决方案
SELECT SUM(rate)
FROM (SELECT i.rating as rate
FROM instock_nagornaya AS i
JOIN products AS p
ON code_id=code
WHERE p.brand="Adidas"
ORDER BY -i.rating
LIMIT 5);
可能会更快解决?
推荐阅读
- python - 用正则表达式替换项目(种类)
- maple - 使用 Maple 进行数值分析编程:相对误差
- javascript - 更新复选框列表时的Vuejs奇怪行为
- sql - ER 模型:如何表示员工与员工工作场所的可能性?2个实体之间的2个关系?
- javascript - Angular中的datatable.net无法识别表内的tr
- arrays - Angular Typescript 将数组的元素映射到类对象(属性)或基于数组元素创建对象?
- angularjs - 由于 DOM 很大,渲染页面需要很长时间
- google-cloud-firestore - Firestore 安全规则拒绝的读/写/删除计数
- c++ - 使用 glVertexArrayAttribFormat / glVertexArrayVertexBuffer 无法访问属性
- c - 使用 C 的 24 位 bmp 中的边缘检测