Sql 对于列A中的每个值,查找B列中大于它的值的数目

Sql 对于列A中的每个值,查找B列中大于它的值的数目,sql,sql-server,tsql,window-functions,Sql,Sql Server,Tsql,Window Functions,假设我有一个表,有两列-a和B 使用纯SQL(无脚本/游标等),我(窗口函数?)如何为A列中的每个值计算B列中大于/小于它的值的数量 谢谢。您可以使用条件聚合: select a, sum(case when b < a then 1 else 0 end) from t group by a; 选择一个, 总和(b

假设我有一个表,有两列-a和B

使用纯SQL(无脚本/游标等),我(窗口函数?)如何为A列中的每个值计算B列中大于/小于它的值的数量


谢谢。

您可以使用条件聚合:

select a,
       sum(case when b < a then 1 else 0 end)
from t
group by a;
选择一个,
总和(b

窗口功能似乎不适合此问题。

根据问题指南,请说明您尝试了什么,并告诉我们您(在本网站或其他地方)发现了什么,以及为什么它不能满足您的需要。请以格式化文本的形式添加样本数据和预期结果。提问时,您需要提供一个最小的可复制示例。请参考以下链接:请提供以下内容:(1)DDL和示例数据填充,即创建表和插入T-SQL语句。(2) 您需要做什么,即逻辑和代码尝试在T-SQL中实现它。(3) 所需输出,基于上述#1中的样本数据。(4) 您的SQL Server版本(选择@@version;)