sql-server - SQL Server:如何计算从前 50% 查询返回的记录
问题描述
如何获取前 50% 选择查询返回的记录数。
select top 50 percent *
from Customers
我尝试使用以下查询
select count(*)/2
from Customers
但它不准确,因为当表中的记录总数为 91 而 TOP 50% 查询返回 46 时,它将返回 45 条记录。
我需要一个查询,它可以告诉返回的记录数select TOP 50 percent * from Customers
解决方案
你可以用子查询包装它:
SELECT COUNT(*) FROM (select TOP 50 percent * from Customers) s
或通过使用窗口计数:
select TOP 50 percent *, COUNT(*) OVER() AS cnt from Customers
推荐阅读
- google-chrome - 如何从命令行更改铬(谷歌浏览器)的用户代理?
- ffmpeg - 使用 ffmpeg 将 rtsp 流式传输到 rtmp 时丢失数据包错误
- vb.net - 如何使用类似于 Spy++ 64 日志消息的 Windows API 在 VB.Net 中捕获另一个应用程序的消息
- javascript - 当实际上没有要添加的值时,向 Object 值添加值
- python - Pandas Dataframe - 按 Col A 分组并对每个组 Col C 求和
- jmeter - 基本 Jmeter 负载测试:10k 不同用户并发登录。所有 10k 用户都应该先在系统中注册吗?
- reactjs - React.default.memo 不是一个函数 (React-Native) wrapWithConnect
- python-3.x - CloudFormation 堆栈删除无法删除 VPC
- facebook - 使用 Firebase 动态链接分享到 Facebook 时无法预览
- javascript - 未捕获的 referenceError 变量未定义