SQL按某个字段值相同的记录数从大到小查询排序
按某个字段值相同的记录数从大到小查询排序?如一个表有一万条记录,有1000条字段A的值为内容1的,2000条字段A的值为内容2的,3000条字段A的值为内容3的,4000...
按某个字段值相同的记录数从大到小查询排序?如一个表有一万条记录,有1000条字段A的值为内容1的,2000条字段A的值为内容2的,3000条字段A的值为内容3的,4000条字段A的值为内容4的,还有字段B内容为时间,字段C内容为空白。如例表:
A B C
001 2011-06-01
001 2013-06-03
001 2012-06-02
002 2012-06-02
001 2014-06-04
002 2011-06-02
003 2012-07-02
002 2013-06-02
003 2011-06-02
需查询后结果为:
A B C
001 2011-06-01 1
001 2012-06-02 2
001 2013-06-03 3
001 2014-06-04 4
002 2011-06-02 1
002 2012-06-02 2
002 2013-06-02 3
003 2011-06-02 1
003 2012-07-02 2
现在要把字段A值相同的总数多的排列在前面,然后字段B值时间最早的排列在前面,字段C按字段A的数量排序填上内容。SQL语句怎么写
C字段要补充序号 sql2000 展开
A B C
001 2011-06-01
001 2013-06-03
001 2012-06-02
002 2012-06-02
001 2014-06-04
002 2011-06-02
003 2012-07-02
002 2013-06-02
003 2011-06-02
需查询后结果为:
A B C
001 2011-06-01 1
001 2012-06-02 2
001 2013-06-03 3
001 2014-06-04 4
002 2011-06-02 1
002 2012-06-02 2
002 2013-06-02 3
003 2011-06-02 1
003 2012-07-02 2
现在要把字段A值相同的总数多的排列在前面,然后字段B值时间最早的排列在前面,字段C按字段A的数量排序填上内容。SQL语句怎么写
C字段要补充序号 sql2000 展开
6个回答
展开全部
-- 解决排序
select A.A, A.B, A.C from table A, (select A, Count(A) OrderA from Table group by A) b
where a.A = b.A
order by b.a desc, a.b
-- c 增加序号 需要知道是什么数据库
select A.A, A.B, A.C from table A, (select A, Count(A) OrderA from Table group by A) b
where a.A = b.A
order by b.a desc, a.b
-- c 增加序号 需要知道是什么数据库
更多追问追答
追问
sql2000
追答
Sql2000没有行号的语句,所以很难通过sql语句实现你要的增加序号功能。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select A,B,
ROW_NUMBER()OVER(PARTITION BY A order by B) AS C
from TABLE
-------------sql 2005 2008 都可以用
ROW_NUMBER()OVER(PARTITION BY A order by B) AS C
from TABLE
-------------sql 2005 2008 都可以用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我试试 select *
from 表
group by A
order by A Desc
from 表
group by A
order by A Desc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询