sql - 如何按除法获取数据的累积计数
问题描述
我正在使用 SQL Server
假设我有一组数字范围的数据。我想通过从最高功率到最低点除以 12 来计算数据的出现次数。
declare @highest decimal(9,5) = 72, @lowest decimal(9,5) = 12
--假设数据最高点为72,最低点为12
declare @division decimal(9,6) = (@highest - @lowest)*12
select floor((data - @lowest) / @division)*@division+@lowest AboveLine,
count(data>floor((data - @lowest) / @division)*@division+@lowest) Counts
from Dataset
group by floor((data - @lowest) / @division)
order by AboveLine desc
我已经检查了很多次脚本。引擎只是不运行代码并抱怨
Incorrect syntax near ')'.
代码有什么问题?有没有更智能的方法来编写它而不使用group by?这是一种非常混乱且不灵活的查询方式。
解决方案
这是什么?
count(data>floor((data - @lowest) / @division)*@division+@lowest)
我假设你打算像这样:
sum(case when data > floor((data - @lowest) / @division) * @division + @lowest
then 1 else 0
end) as counts
推荐阅读
- email - Mailchimp mc:repeatable & mc:variant 没有按预期工作
- javascript - TypeError:无法解构“未定义”或“空”的属性“stat”
- javascript - IndexedDB 和游标
- gitlab - Gitlab CI 使用导出变量
- java - 关闭飞行模式后,为什么 Android 应用程序会通过 Activity 和 Fragment 生命周期方法
- sql - 清理不再被任何子引用的父表行
- python - 删除 Python 列表中特定的相同后续值
- c++ - 如何模拟在 C++ 中按住键盘键
- javascript - 滚动超出文档中的特定点后激活动画
- c - C 宏的参数受参数前缀限制