【发布时间】:2015-06-04 12:33:36
【问题描述】:
我有一个有趣的要求,即使用不同的条件对数据集进行分区。
说起来,不简单GROUP BY或者ORDER BY首先得说。
是排名吗?是的,更接近一点,但这里的挑战是为此编写一个查询。
嗯,我仍然想知道并寻找一个直接的选择。让我介绍一个问题。
Name ----- Age ----- MarksForMaths ---- AvgByTotal
以上是一个简单的示例架构,其中可以是少数学生的数学成绩和所有平均成绩。
我需要根据以下条件过滤掉这个集合。
- 获得75 > Mathsmarks > 50 的人应该排在首位
- 数学分数 > 90 的人应该是下一组
- 平均 > 65 的人应该在此之后参加
- 老年人年龄> 55应该是最后一组
是的,显然排名和过滤是一种选择,但我们可以在优化查询中做到这一点吗?
提示 - 我所做的基本上是创建一个额外的列名称 RANK 并根据条件使用索引更新该列。
那么这只是一个问题或通过RANK过滤数据顺序。小菜一碟 !
但这里的问题是,我们可以进行一次查询吗?欣赏提示。
谢谢
【问题讨论】:
-
您的数据从何而来?
标签: sql-server tsql rank