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

2025-01-20 21:49:31
推荐回答(5个)
回答1:

这个是可以实现的,但直接实现比较复杂,
可以借助于辅助的一列来简单的实现,
1.就是可以加一列,用来记录与本行中B字段内容相同的记录条数,
使用update语句将新增加的一列进行更新,
2.然后在使用排序,首先对新增加的列进行升序排列,还可以继续在新增加的列内容相同的基础上按照别的字段进行排序,
呵呵,希望能有帮助,^_^

回答2:

--
解决排序
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
增加序号
需要知道是什么数据库

回答3:

写的麻烦了点,呵呵,可能还有更好的方法,但我试了,可以实现你的要求
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

回答4:

在B上建立一个索引,如果想从小到大就建立一个升序索引
如果想从大到小就建立一个降序索引
然后用一个语句select * from 表名 order by B

回答5:

由于你的字段B 的 值特殊是1,2,3,4 ,相同字段总数也特殊
所以你可以 直接使用 select * from 表 order by 字段B
---
如果不同可以使用
select 字段B ,count(字段B)from 表 group by 字段B order by count(字段B)
----如果字段B 里是文字内容,你怎么判断他是相同的内容?有时候中间存在空格SQL会认为是不同的 !