Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最大值的sql标志_Sql_Sql Server - Fatal编程技术网

最大值的sql标志

最大值的sql标志,sql,sql-server,Sql,Sql Server,我有一张表格更新图片,其中包含订户id、总数、税务id和DOS。total是订阅服务器在同一服务日期支付给税务id位置的访问次数。我正在尝试创建另一列,该列将1分配给访问量最高的tax_id,将0分配给同一订阅服务器和DOS的所有其他tax_id。我有许多不同的订阅者,所以我需要一个通用的代码,图中只描述了一个订阅者的示例 期望最终结果列MM期望结果图片 这就是我所拥有的,但是它为MM列中的每一行返回一个,而我只需要一个总数为3的行,以及所有其他行中的0。我需要这个来处理不同用户的列表,这些用户

我有一张表格更新图片,其中包含订户id、总数、税务id和DOS。total是订阅服务器在同一服务日期支付给税务id位置的访问次数。我正在尝试创建另一列,该列将1分配给访问量最高的tax_id,将0分配给同一订阅服务器和DOS的所有其他tax_id。我有许多不同的订阅者,所以我需要一个通用的代码,图中只描述了一个订阅者的示例

期望最终结果列MM期望结果图片


这就是我所拥有的,但是它为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