假设我有4个列的表格:获得前N行与在SQL Server 4列
Col1 Col2 Col3 Col4
我的初始查询是:
SELECT Col1, Col2, Col3, Col4
FROM myTable
ORDER BY Col1, Col2, Col3 DESC, Col4
我期望的结果是所有4列,但与此条件,顶部N Col3不同的行当Col1,Col2是相等的。
实施例具有N = 2:
表的示例数据:
Col1 Col2 Col3 Col4
---------------------
1 a 2000 s
1 a 2002 c
1 a 2001 b
2 b 1998 s
2 b 2002 c
2 b 2000 b
3 c 2000 b
1 f 1998 n
1 g 1999 e
期望的结果:
1 a 2002 c
1 a 2001 b
1 f 1998 n
1 g 1999 e
2 b 2002 c
2 b 2000 b
3 c 2000 b
在另一个说明中,当(col1, col2)
在多个记录被重复,只是出口顶当按Col3降序排序时,这些记录有N行。
我可以用SQL脚本来做到这一点吗,不用硬编码?
对列使用GROUP BY子句,然后使用ORDER BY COL3递减得到我们想要的输出 – Ajay
4 _columns_,并不领域。 – jarlh
group by在我的问题中SQL不适合,因为字段有不同的值,当按列分组时,每个值都去自己的组,并且不能访问做Top N Col3! – HelloMasters