mysql - 从数据库中确定最有利可图的商店的功能
问题描述
我必须创建一个接收索引并返回按利润排序的索引中的商店名称的 MySQL 函数。如何设置功能?
这是我根据利润订购商店所做的查询,利润是售出商品的总和乘以库存数量。
SELECT name, (SUM(price * quantity)) AS TotalPrice
FROM Items NATURAL JOIN Inventory
GROUP BY name
ORDER BY (TotalPrice) DESC;
Schema:
Inventory(name: String, item: String, quantity: integer)
Items(item: String, brand: String, price:double )
错误:使用的 Select 语句的列数不同。
我应该能够返回第 n 个最赚钱的商店。MySQL命令我有按顺序创建视图的功能,但我不知道如何返回有序表的索引。这不是作业,只是复习考试。
解决方案
我能够创建一个过程,而不是一个函数,它可以通过以下代码为我提供我想要的结果:
DELIMITER |
CREATE PROCEDURE m2(IN N INTEGER)
BEGIN
SELECT name, (SUM(price * quantity)) AS Total_Profit
FROM Items JOIN
Inventory
USING (item)
GROUP BY name
ORDER BY Total_Profit DESC
LIMIT N, 1;
END |
推荐阅读
- php - Laravel 调试器 - 在实现缓存时根据 IP 地址启用/禁用
- python - RuntimeWarning:在 true_divide W = 1/sigma**2/s_sq symfit 中遇到除以零
- python - 根据其值更改 numpy 数组的各个元素
- python - tf.train.init_from_checkpoint 不初始化使用 tf.Variable 创建的变量
- c# - iTextSharp 5 - 如何转换 HTML 元素
- video-streaming - 记录RTC | 我们可以在不停止记录的情况下保存 blob 数据吗
- java - 二维数组中的真值表
- function - 重构箭头函数以兼容 IE
- android-studio - Android Studio 3.3.1 中关于 Github 的 Update Project 和 Pull 命令有什么不同?
- webserver - 使用 Esp8266 传递强制门户