我想通过使用sql计算每个ID有多少个37

我想通过使用sql计算每个ID有多少个37,sql,sql-server,Sql,Sql Server,嗯。这需要取消激活数据、过滤和重新聚合。事实证明,使用apply非常简单: 您可以使用: 选择ID,将*计为cnt 从…起 挑选* 从mytable作为src 在【一月】、【二月】、【三月】、【四月】、【五月】、【六月】取消周一的投票, [七月],[八月],[九月],[十月],[十一月],[十二月]作为unpvt 其中col=37 按ID分组 很好,你对未来有计划,但到目前为止你尝试了什么,你有什么问题?请展示你迄今为止尝试了什么。你在抽签中击败了我: ID jan Feb Mar A

嗯。这需要取消激活数据、过滤和重新聚合。事实证明,使用apply非常简单:

您可以使用:

选择ID,将*计为cnt 从…起 挑选* 从mytable作为src 在【一月】、【二月】、【三月】、【四月】、【五月】、【六月】取消周一的投票, [七月],[八月],[九月],[十月],[十一月],[十二月]作为unpvt 其中col=37 按ID分组
很好,你对未来有计划,但到目前为止你尝试了什么,你有什么问题?请展示你迄今为止尝试了什么。你在抽签中击败了我:
   ID   jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
13441   37  0   0   0   0   67  0   0   0   0   0   0
13555   37  0   97  0   0   0   0   0   0   0   0   0
15103   67  0   97  0   0   0   0   0   0   0   0   0
16019   37  0   97  0   0   0   0   0   0   37  67  97
12951   67  0   97  0   0   0   0   0   0   0   0   0
16351   37  0   37  67  0   0   0   0   0   0   37  67
13244   37  0   37  67  0   0   0   0   0   0   0   0
select t.*, c.cnt37
from t outer apply
     (select count(*) as cnt37
      from (values (jan), (feb), (mar), (apr), (may), (jun), (jul), (aug), (sep), (oct), (nov), (dec)
           ) v(val)
      where val = 37
     ) c;