SQL仅返回最大值
我已经用max做了一些基本的查询,但这一个有更多的内容。我正在使用SSMS 2012。这还需要包括一个组或不同的组 Select语句-SQL仅返回最大值,sql,sql-server,select,max,distinct,Sql,Sql Server,Select,Max,Distinct,我已经用max做了一些基本的查询,但这一个有更多的内容。我正在使用SSMS 2012。这还需要包括一个组或不同的组 Select语句- select A.YEAR1, A.PERIODID from GPSTJ..SY40100 A where A.CLOSED = 0 and A.PERIODID <> 0 and A.series = 5 我只希望它返回1行,首先是年列中的最大值,然后是最大期间ID- YEAR1 PERIODID 2016 2 谢谢您可以尝试
select A.YEAR1, A.PERIODID
from GPSTJ..SY40100 A
where A.CLOSED = 0 and A.PERIODID <> 0 and A.series = 5
我只希望它返回1行,首先是年列中的最大值,然后是最大期间ID-
YEAR1 PERIODID
2016 2
谢谢您可以尝试使用
have
子句和group by
年份、期间ID您将使用MAX()
所以使用从表中选择MAX(YEAR1)、PERIODID代码>
这将选择列中的最高值。仅使用TOP(1)
选择顶部(1)A.YEAR1,A.PERIODID
来自GPSTJ..SY40100 A
其中A.CLOSED=0,A.PERIODID=0,A.series=5
按A.YEAR1 DESC,A.PERIODID DESC订购
试试这个select*from(select Year1,Periodid,rn=row_number()(按Year1划分,按Periodid desc排序)from…)x其中x.rn=1
Hi,这一个看起来既漂亮又简单。以前从未使用过top,但它很有意义。谢谢。您忘记添加分组依据
YEAR1 PERIODID
2016 2
select TOP (1) A.YEAR1, A.PERIODID
from GPSTJ..SY40100 A
where A.CLOSED = 0 and A.PERIODID <> 0 and A.series = 5
ORDER BY A.YEAR1 DESC, A.PERIODID DESC