gpt4 book ai didi

sql - 面试题最优解

转载 作者:行者123 更新时间:2023-12-04 19:19:38 26 4
gpt4 key购买 nike

最近在一次求职面试中,我遇到了以下问题。

说我有下表

widget_Name        |     widget_Costs      | In_Stock
---------------------------------------------------------
a | 15.00 | 1
b | 30.00 | 1
c | 20.00 | 1
d | 25.00 | 1

其中widget_name 是widget 的名称,widget_costs 是widget 的价格,in stock 是常数1。

现在对于我的商业保险,我有一定的免赔额。我正在寻找一个 sql 语句,它会告诉我每个小部件及其价格超过免赔额。所以如果我的免赔额是 50.00 美元,上面的就会返回
widget_Name        |     widget_Costs      | In_Stock
---------------------------------------------------------
a | 15.00 | 1
d | 25.00 | 1

由于小部件 b 和 c 用于满足免赔额

我能得到的最接近的是以下
SELECT 
*
FROM (
SELECT
widget_name,
widget_price
FROM interview.tbl_widgets
minus
SELECT widget_name,widget_price
FROM (
SELECT
widget_name,
widget_price,
50 - sum(widget_price) over (ORDER BY widget_price ROWS between unbounded preceding and current row) as running_total
FROM interview.tbl_widgets
)
where running_total >= 0
)
;

这给了我
widget_Name        |     widget_Costs      | In_Stock
---------------------------------------------------------
c | 20.00 | 1
d | 25.00 | 1

因为它使用a和b来满足大部分免赔额

我希望有人能告诉我正确的答案

编辑:我理解面试问题是问这个。给定一个小部件及其价格表,并给出一个美元金额,减去尽可能多的小部件,最多为美元金额,然后返回这些小部件及其剩余价格

最佳答案

我会提出一个答案,以防万一它比看起来更容易,但如果这个想法只是返回任何成本超过免赔额的小部件,那么你会做这样的事情:

Select
Widget_Name, Widget_Cost, In_Stock
From
Widgets
Where
Widget_Cost > 50 -- SubSelect for variable deductibles?

对于您的示例数据,我的查询不返回任何行。

关于sql - 面试题最优解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5624824/

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