oicq63236 发表于 2008-02-26 19:55

如何按出现次数多少排序查询固定表?

例如,现在有一个表中有下列数据

pass
-------------
123456
666666
888888
123456
123456
888888
123456

其中123456出现4次,666666最少,所以查询结果想得到下列数据:
123456(4次)
888888(2次)
666666(1次)

ivhb 发表于 2008-02-27 08:34

select
pass, count (*)
from your-tab
order by 2, 1

oicq63236 发表于 2008-02-27 16:53

294: The column (gykl) must be in the GROUP BY list.
Error in line 1
Near character position 34

Database closed.

liaosnet 发表于 2008-02-27 17:08

原帖由 oicq63236 于 2008-2-27 16:53 发表 http://bbs.chinaunix.net/images/common/back.gif
294: The column (gykl) must be in the GROUP BY list.
Error in line 1
Near character position 34

Database closed.

select
pass, count (*)
from your-tab
order by 2, 1
group by 1;

oicq63236 发表于 2008-02-28 09:18

回复 #4 liaosnet 的帖子

谢谢大家了,不过得换顺序,否则仍报错,得先GROUP,再ORDER,就正常了,再次感谢大家!


再多请教一下,如果我只想取前10个数据,再加什么语句?

[ 本帖最后由 oicq63236 于 2008-2-28 09:21 编辑 ]

ivhb 发表于 2008-02-28 09:26

select first 10
   ....

oicq63236 发表于 2008-02-28 10:32

回复 #6 ivhb 的帖子

谢谢,呵呵,我用LAST怎么取不到后十个呢?

ivhb 发表于 2008-02-28 10:49

没有这个语法。
你可以倒排取前10,就相当于last了

oicq63236 发表于 2008-02-28 11:25

回复 #8 ivhb 的帖子

嗯,谢谢LVHB兄指教了。

oicq63236 发表于 2008-02-28 11:34

:wink: 怎么把COUNT(*)出的数,当条件使用呢?例如我想查大于COUNT(*)出10的记录?
页: [1] 2
查看完整版本: 如何按出现次数多少排序查询固定表?