我已经标识下面的表格排序,年DESC如何根据列的变化值对记录进行分组/排名?
Id Year Valid 1 2011 1 1 2010 1 1 2009 0 1 2002 1 4 2013 1 4 2012 1 4 2011 1 etc.
我想有像一个额外的等级字段:
Id Year Valid Rank 1 2011 1 1 1 2010 1 1 1 2009 0 2 1 2002 1 3 4 2013 1 1 4 2012 1 1 4 2011 1 1 etc.
基本上每个ID交替在每一次改变行列有效的字段。以这种方式,我可以在rank = 1字段上查询每个Id的所有Valid = 1记录,直到第一个Valid = 0。或者是否有更简单的方法来选择匹配特定条件的第一个最高记录数(对于Id = 1,只有前两个记录)。我已经玩过ROW_NUMBER(),RANK()和PARTITION BY,但我似乎无法让它工作。由于实际查询是针对大型数据库运行的,因此必须避免嵌套查询。
任何任何想法?
感谢和欢呼声, 奈奎斯特
您能否澄清“排名”专栏的工作原理以及如何针对您选择的这个选项进行查询。 – ImGreg