gpt4 book ai didi

mysql - 细化按行分组的结果值(无法创建 VIEW,因为查询包含子查询)

转载 作者:行者123 更新时间:2023-11-30 22:20:08 25 4
gpt4 key购买 nike

我有下表:

 ----------------------------
| id | product | price |
----------------------------
| 1 | 1 | 50 |
| 2 | 1 | 39 |
| 3 | 1 | 60 |
----------------------------

我需要的是获取按产品 (1) 分组的最低价格 (39) 并保留最低价格的 ID (2)。

我有这个问题

SELECT
id,
product,
MIN(price) AS price
FROM
variant
GROUP BY
product

结果是

 ----------------------------
| id | product | price |
----------------------------
| 1 | 1 | 39 |
----------------------------

但是我要找的结果是

 ----------------------------
| id | product | price |
----------------------------
| 2 | 1 | 39 |
----------------------------

我能够使用这个查询得到结果

select B.id, A.* FROM
(SELECT product,MIN(price) AS minprice
FROM variant GROUP BY product ) A
JOIN variant B ON A.product = B.product and A.minprice = B.price

但我还需要使用此查询创建一个 View ,因为 from 中有一个子选择,所以我无法创建 View 。

还有其他方法可以获得我想要的结果吗?

我做了一个 fiddle :http://sqlfiddle.com/#!9/d2ddb2

最佳答案

您可以创建另一个 View 作为子查询,然后创建您的 View 加入第一个 View 而不是子查询。

CREATE VIEW min_variant AS
SELECT product,MIN(price) AS minprice
FROM variant
GROUP BY product;

CREATE VIEW min_product AS
SELECT B.id, A.*
FROM min_variant A
INNER JOIN variant B
ON A.product = B.product
AND A.minprice = B.price;

http://sqlfiddle.com/#!9/ea16c6/1

关于mysql - 细化按行分组的结果值(无法创建 VIEW,因为查询包含子查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36876588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com