我有一个表格,屏幕截图中给出了数据
.
我只需要获取每个月具有最大Snapshot_Date的记录.
我需要我的结果数据集如下

我怎么能这样做 我需要你的想法.
我试过用
select *
from table
where Snapshot_Date = (select MAX(Snapshot_Date)
from table
where DATEPART(MONTH,Snapshot_Date)=11)
Run Code Online (Sandbox Code Playgroud)
但我需要在这里硬编码月份数!谢谢你的时间!!
我有一个表(TestTable),数据如下

我需要根据ColA,Age,Gender列值创建一个计算列"Band".如下
CASE
WHEN ColA='A' AND AGE=1 AND GENDER='M' THEN 'BANDX90'
WHEN ColA='A' AND AGE=1 AND GENDER='F' THEN 'BANDX91'
.
.
.
.
WHEN ColA='A' AND AGE=65 AND GENDER='M' THEN 'BANDX18'
WHEN ColA='A' AND AGE=65 AND GENDER='F' THEN 'BANDX19'
WHEN ColA='B' AND AGE=1 AND GENDER='M' THEN 'BANDX39'
WHEN ColA='B' AND AGE=1 AND GENDER='F' THEN 'BANDX56'
ELSE NULL
END AS BAND
Run Code Online (Sandbox Code Playgroud)
注意:我的用户/客户为excel表中的不同 WHEN条件提供了BAND值('BANDX90',....).
上述CASE方法的缺点是,如果我在表中有500条记录,那么我必须使用CASE 'WHEN' STMT 500 TIMES哪个不是一个好的选择.
在计算列时,是否有人遇到过相同的情况?如果是,请分享您的建议!
有没有其他方法可以实现这一目标?