SQL按某个字段值相同的记录数从小到大查询排序

按某个字段值相同的记录数从小到大查询排序?如一个表有一万条记录,有1000条字段B的值为内容1的,2000条字段B的值为内容2的,3000条字段B的值为内容3的,4000... 按某个字段值相同的记录数从小到大查询排序?
如一个表有一万条记录,有1000条字段B的值为内容1的,2000条字段B的值为内容2的,3000条字段B的值为内容3的,4000条字段B的值为内容4的,

现在要把字段B值相同的总数少的排列在前面,字段B值相同总数大的排列在后面,SQL语句怎么写
我只是打个比方,其实字段B是姓名,可能有成千上万种,是要把每条记录都排序显示出来,有可能吗
展开
 我来答
wanluo007
2008-11-29 · TA获得超过1122个赞
知道小有建树答主
回答量:836
采纳率:0%
帮助的人:766万
展开全部
这个是可以实现的,但直接实现比较复杂,
可以借助于辅助的一列来简单的实现,
1.就是可以加一列,用来记录与本行中B字段内容相同的记录条数,
使用update语句将新增加的一列进行更新,
2.然后在使用排序,首先对新增加的列进行升序排列,还可以继续在新增加的列内容相同的基础上按照别的字段进行排序,
呵呵,希望能有帮助,^_^
石智智明
2020-03-12 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:603万
展开全部
--
解决排序
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
增加序号
需要知道是什么数据库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zyh9992004
2008-11-28
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
写的麻烦了点,呵呵,可能还有更好的方法,但我试了,可以实现你的要求
SELECT t.a
FROM t1 t,
(SELECT inerT.a inerTa,COUNT(inerT.a) cnt FROM t1 inerT GROUP BY inerT.a) t3
WHERE t.a = t3.inerTa
ORDER BY t3.cnt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yueyunsong
2008-11-28
知道答主
回答量:20
采纳率:0%
帮助的人:6万
展开全部
在B上建立一个索引,如果想从小到大就建立一个升序索引
如果想从大到小就建立一个降序索引
然后用一个语句select * from 表名 order by B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mailking2001
2008-11-28 · TA获得超过817个赞
知道小有建树答主
回答量:1037
采纳率:100%
帮助的人:741万
展开全部
由于你的字段B 的 值特殊是1,2,3,4 ,相同字段总数也特殊
所以你可以 直接使用 select * from 表 order by 字段B
---
如果不同可以使用
select 字段B ,count(字段B)from 表 group by 字段B order by count(字段B)
----如果字段B 里是文字内容,你怎么判断他是相同的内容?有时候中间存在空格SQL会认为是不同的 !
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式