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 by
和 fetch
(或您数据库中的等效项):
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课
我正在尝试过滤我的 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 by
和 fetch
(或您数据库中的等效项):
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课