mssql查询的一个问题
表内容:IDUserIDEngLishNameScore1001sdfw602002fdhtr703003retlohk604004erteryher605005svdf...
表内容:
ID UserID EngLishName Score
1 001 sdfw 60
2 002 fdhtr 70
3 003 retlohk 60
4 004 erteryher 60
5 005 svdfh 60
6 006 vcbdf 80
7 007 cxcbh 70
想要的结果是score 相同的最多的排上面,4个60,2个70,1个80的排序,然后在这个排序的基础上EngLishName 按a-z的顺序排序。 展开
ID UserID EngLishName Score
1 001 sdfw 60
2 002 fdhtr 70
3 003 retlohk 60
4 004 erteryher 60
5 005 svdfh 60
6 006 vcbdf 80
7 007 cxcbh 70
想要的结果是score 相同的最多的排上面,4个60,2个70,1个80的排序,然后在这个排序的基础上EngLishName 按a-z的顺序排序。 展开
3个回答
展开全部
用这个语句即可达到你的要求
SELECT A.ID,A.UserID,A.EngLishName,A.Score FROM 表名 A,(SELECT Score,COUNT(Score) AS ScoreCOUNT FROM 表名 GROUP BY Score) AS B WHERE A.Score=B.Score ORDER BY B.ScoreCOUNT DESC,A.EngLishName ASC
SELECT A.ID,A.UserID,A.EngLishName,A.Score FROM 表名 A,(SELECT Score,COUNT(Score) AS ScoreCOUNT FROM 表名 GROUP BY Score) AS B WHERE A.Score=B.Score ORDER BY B.ScoreCOUNT DESC,A.EngLishName ASC
追问
看着是对的。
效果有时候不太理想,不过辛苦你了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询