最大值的sql标志
我有一张表格更新图片,其中包含订户id、总数、税务id和DOS。total是订阅服务器在同一服务日期支付给税务id位置的访问次数。我正在尝试创建另一列,该列将1分配给访问量最高的tax_id,将0分配给同一订阅服务器和DOS的所有其他tax_id。我有许多不同的订阅者,所以我需要一个通用的代码,图中只描述了一个订阅者的示例 期望最终结果列MM期望结果图片最大值的sql标志,sql,sql-server,Sql,Sql Server,我有一张表格更新图片,其中包含订户id、总数、税务id和DOS。total是订阅服务器在同一服务日期支付给税务id位置的访问次数。我正在尝试创建另一列,该列将1分配给访问量最高的tax_id,将0分配给同一订阅服务器和DOS的所有其他tax_id。我有许多不同的订阅者,所以我需要一个通用的代码,图中只描述了一个订阅者的示例 期望最终结果列MM期望结果图片 这就是我所拥有的,但是它为MM列中的每一行返回一个,而我只需要一个总数为3的行,以及所有其他行中的0。我需要这个来处理不同用户的列表,这些用户
这就是我所拥有的,但是它为MM列中的每一行返回一个,而我只需要一个总数为3的行,以及所有其他行中的0。我需要这个来处理不同用户的列表,这些用户具有不同的税号和服务日期。我想你需要类似的东西
with MyTotal as
(
select MaxTotal = MAX(Total)
from #Update3
)
SELECT SUBSCRIBER_ID
, Total
, TAX_ID
, DOS
, case WHEN Total = mytot.MaxTotal then 1 ELSE 0 END as MM
FROM #Update3
cross join MyTotal
您将按所有列进行分组,因此案例表达式将始终返回第一个输出。您可能需要在此处使用子查询或cte。是否需要查询一个订阅服务器参数订阅服务器id或按订阅服务器分组的所有订阅服务器?我希望您不想将此标志保存在表中,因为它是一个计算字段!?我认为xoxotolu希望每个订阅者的maxtotal值,而不是整个表的maxtotal值。@Nikolaus,这与文章中期望的输出值不同。好吧,那么我误解了什么。
with MyTotal as
(
select MaxTotal = MAX(Total)
from #Update3
)
SELECT SUBSCRIBER_ID
, Total
, TAX_ID
, DOS
, case WHEN Total = mytot.MaxTotal then 1 ELSE 0 END as MM
FROM #Update3
cross join MyTotal