gpt4 book ai didi

mysql - SQL 值与最大列值的比率(按组)

转载 作者:行者123 更新时间:2023-11-29 04:05:41 25 4
gpt4 key购买 nike

我认为这会引起小组的普遍兴趣,因为这是一个实际的求职面试 SQL 问题,但我做错了。我想我很接近,但有人可以提供正确答案吗?

Brand  |  Model  |  Price
Braun | KF7150 | 98
Braun | KF7000 | 70
Braun | KF400 | 55
Krups | KM730 | 67
Krups | KM4689 | 130
Krups | EC311 | 50

对于上表(咖啡),提供显示品牌、型号、价格以及每个型号的价格与其品牌最高价格的比率的代码,四舍五入到最接近的小数点后两位。

我知道这段代码是错误的,因为它只是选择了总体最高价格 (130)。

SELECT Brand, Model, Price, ROUND(Price/(SELECT MAX(Price) FROM Coffee),2)
as Price_to_Brand_Highest
FROM Coffee
ORDER BY Brand;

我尝试了自连接,但所有比率都返回为 1,因为每个价格都被自己除掉了。

SELECT C1.Brand, C1.Model, C1.Price, ROUND(C1.Price/(SELECT MAX(C2.Price) 
FROM Coffee where C1.Brand=C2.Brand),2) as Price_to_Brand_Highest
FROM Coffee C1
JOIN Coffee C2 on C1.Model=C2.Model
GROUP BY C1.Model
ORDER BY C1.Brand;

最佳答案

您没有指定 DBMS,所以这是 ANSI 标准 SQL:

select brand, model, price, 
round(price / max(price) over (partition by brand), 2) as price_ratio
from coffee
order by brand, model;

在线示例:http://rextester.com/HFZZRP41164

关于mysql - SQL 值与最大列值的比率(按组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42963887/

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