簡體   English   中英

選擇A列的最小值,其中B列= 1

[英]Select Minimum value of column A where Column B=1

我有這張桌子AVERAGE

在此處輸入圖片說明

我想要

select * from table where VhrNum=MIN(VhrNum) and EmptyOrNot=1

我已經嘗試過此查詢,但無法正常工作

select * 
from   Average 
where  Itmnum='1' 
   and VhrNum = (
                  select  MIN(VhrNum) 
                  from    (
                             select * 
                             from   Average 
                             where  EmptyOrNot = '1'
                          )
                )

就我而言,應該選擇第三行

為什么不只按top 1order by

SELECT TOP 1 * 
FROM [table]
WHERE EmptyOrNot=1
ORDER BY VhrNum

TOP 1ORDER BY

select Top 1 * from table where EmptyOrNot=1
Order by VhrNum ASC

如果您有多個具有最小VhrNum值的記錄,並且想要所有平局記錄,則使用TOP 1 WITH TIES

select Top 1 With Ties * from table where EmptyOrNot=1
Order by VhrNum ASC

你可以這樣嘗試

 SELECT MIN(VhrNum) FROM table_name where EmptyOrNot=1;

聚合函數需要GROUP BY或可以ORDER BY並選擇第一個。

Aggregate不會讓您執行SELECT * ,無論如何這都不是一個好習慣,而Aggregate可以使您更清楚地知道您實際上是在嘗試獲取MIN TOP 1/ORDER BY可以讓您執行SELECT * ,但是可能並不太清楚您真正想要獲得的只是MIN(VhrNum)

骨料:

SELECT MIN(VhrNum)
FROM Average
WHERE EmptyOrNot = 1
GROUP BY EmptyOrNot

最佳:

SELECT TOP(1) VhrNum, *
FROM Average
WHERE EmptyOrNot = 1
ORDER BY VhrNum ASC

您可以嘗試以下方法:

select top 1 * from table where VhrNum= (select min(VhrNum) from table);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM