在MS SQL中,我需要一种方法来确定某个十进制列的行使用的最大比例.
例如,Col1 Decimal(19,8)的比例为8,但我需要知道是否所有8个实际上都在使用,或者是否只使用了5,6或7.
样本数据:
123.12345000
321.43210000
5255.12340000
5244.12345000
Run Code Online (Sandbox Code Playgroud)
对于上面的数据,我需要查询返回5,或123.12345000或5244.12345000.
我不关心性能,我确定全表扫描会有序,我只需要运行一次查询.
我正在尝试确定MSSQL 2008中的最佳方法.
这是我的示例数据
TransDate Id Active
-------------------------
1/18 1pm 5 1
1/18 2pm 5 0
1/18 3pm 5 Null
1/18 4pm 5 1
1/18 5pm 5 0
1/18 6pm 5 Null
Run Code Online (Sandbox Code Playgroud)
如果按Id分组并由TransDate排序,我想要活动列的最后一个非空值和TransDate的MAX
SELECT MAX(TransDate) AS TransDate,
Id,
--LASTNonNull(Active) AS Active
Run Code Online (Sandbox Code Playgroud)
结果如下:
TransDate Id Active
---------------------
1/18 6pm 5 0
Run Code Online (Sandbox Code Playgroud)
它就像一个Coalesce但是在行上,而不是两个值/列.
还有许多其他列也会应用这种类似的方法,所以我真的不想为每个列进行单独的连接.
有任何想法吗?