对于 col A 中的每个值,查找列 B 中大于它的值的数量
Posted
技术标签:
【中文标题】对于 col A 中的每个值,查找列 B 中大于它的值的数量【英文标题】:For each value in col A finding number of values in column B that are greater than it 【发布时间】:2021-04-13 20:23:40 【问题描述】:假设我有一个包含 2 列的表格 - A 和 B。
使用纯 SQL(无脚本/游标等),我如何(窗口函数?)为 A 列中的每个值计算 B 列中大于/小于它的值的数量?
谢谢。
【问题讨论】:
根据问题指南,请展示您尝试过的内容并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。并将示例数据和预期结果添加为格式化文本。 在提出问题时,您需要提供一个可重现的最小示例。请参考以下链接:***.com/help/minimal-reproducible-example 请提供以下内容: (1) DDL 和样本数据填充,即 CREATE table(s) 加上 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上面#1 中的样本数据。 (4) 你的 SQL Server 版本 (SELECT @@version;) 【参考方案1】:您将使用条件聚合:
select a,
sum(case when b < a then 1 else 0 end)
from t
group by a;
窗口函数似乎不适合这个问题。
【讨论】:
以上是关于对于 col A 中的每个值,查找列 B 中大于它的值的数量的主要内容,如果未能解决你的问题,请参考以下文章