如何找到值不等于零的第一行

Arv*_*mar 3 sql sql-server

我需要找到Ten_Yr_CAPE没有0值的第一个日期.当Ten_Yr_CAPE大于0时,输出表应具有Country列和Date Column,其中包含Date.

我写了下面的查询,但它拉了所有'Ten_Yr_CAPE'<> 0的记录.我只需要初始日期.谁能帮我.

选择TOP(1)只返回一条记录.我需要每个国家一条记录.所以每个国家共有20条记录

    select  [Date],[Country] from [Tableau].[dbo].[Country_table4$] where 
    [Ten_Yr_CAPE] <> 0 
     Group by [Country], [Date]
     Order by [Date] ASC
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

我认为聚合是最简单的方法:

select  t.[Country], min(t.[Date])
from [Tableau].[dbo].[Country_table4$] t
where [Ten_Yr_CAPE] <> 0 
Group by [Country]
Order by [Date] ASC
Run Code Online (Sandbox Code Playgroud)