【问题标题】:TSQL divide one count by another to give a proportionTSQL将一个计数除以另一个给出一个比例
【发布时间】:2019-10-16 20:25:14
【问题描述】:

我想计算列 BreedTypeID 中动物的比例,值为 1。我认为最简单的方法是计算 n BreedTypeID = 1 / 总 BreedTypeID。 (我还希望他们在他们的 ID 中有相同的 YearDOB 和子字符串,如图所示)我尝试了以下操作:

(COUNT([dbo].[tblBreed].[BreedTypeID])=1 OVER (PARTITION BY Substring([AnimalNo],6,6), YEAR([DOB]))/ COUNT([dbo].[tblBreed].[BreedTypeID]) OVER (PARTITION BY Substring([AnimalNo],6,6), YEAR([DOB]))) As Proportion

但它被COUNT([dbo].[tblBreed].[BreedTypeID])=1窃听

如何指定在 =1 时只计算 [BreedTypeID]?

非常感谢

【问题讨论】:

  • 我知道“窃听”是一个技术术语,但您能与我们分享实际消息的文本吗?
  • 对不起!错误是:“=” 附近的语法不正确

标签: tsql count divide


【解决方案1】:

这将解决您的问题,尽管我建议您使用表别名而不是 schema.table.column。更容易阅读:

只需替换:

COUNT([dbo].[tblBreed].[BreedTypeID])=1

SUM( CASE WHEN [dbo].[tblBreed].[BreedTypeID] = 1 THEN 1 ELSE 0 END) 

【讨论】:

  • 效果很好,一开始我把它搞砸了,但当我再次阅读时,它就开始了。谢谢!!
猜你喜欢
  • 1970-01-01
  • 2022-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
相关资源
最近更新 更多