SQL max 语句中的多个条件不起作用

SQL Multiple Conditions in max statement not working

我正在尝试过滤我的 table 并获得售价最高的商品。为此,我使用 "AuctionOpen" 来确定拍卖是否仍在进行中。拍卖无法开启,物品已售出(稍后我会用这个来拍最贵的物品)。

我可以使用 AND 运算符通过以下方式比较 AuctionOpen:

select s.*
from auctionsite.dbo.Auction s
where s.HighestBid = (select max(s2.HighestBid) from auctionsite.dbo.Auction 
   s2) and s.AuctionOpen = 0;

当我将它设置为零时,我得到了结果,但是当我将它设置为 1 时,它只有 returns 列标题,即使 table 中的值设置为 1 .

与 0 相比的结果:

与 1 相比的结果:

显然,最高出价出现在 AuctionOpen <> 1.

的记录中

我建议使用 order byfetch(或您数据库中的等效项):

select s.*
from auctionsite.dbo.Auction s
where s.AuctionOpen = 0
order by s.HIghestBid desc
fetch first 1 row only

在 SQL 服务器中,使用 select top (1)offset 0 rows fetch first 1 row only

我认为你应该试试 Count 聚合函数

在这里,试试这个:

    **Select count(Item_name) As 

[最高金额的项目] 来自 table_name 按 Item_name DSEC 分组;**

你可以在这里查看我的页面SQL/MySQL tips一些SQL/MySQL课