如何查询数据库里某个字段的某个值出现频率最高的前十个?
如何查询数据库里某个字段的某个值出现频率最高的前十个?
如:
日期 故障设备
3.01 a
3.02 b
3.03 c
3.04 a
3.05 c
3.06 a
3.07 d
.....................
问题点数:20、回复次数:8Top
1 楼e170()回复于 2006-03-20 18:27:52 得分 0
目的就是查找故障出现最多的设备Top
2 楼lurel(城市陌生人)回复于 2006-03-20 18:48:37 得分 5
sql server是这样的
select top 10 故障设备 from 表名
group by 故障设备
order by
count(故障设备)
Top
3 楼lurel(城市陌生人)回复于 2006-03-20 18:48:58 得分 0
select top 10 故障设备 from 表名
group by 故障设备
order by
count(故障设备) descTop
4 楼lvjack(追逐梦想)回复于 2006-03-21 23:51:43 得分 15
Access:select top 10 故障设备,count(*) cnt from table_name group by 故障设备 order by cnt desc
informix:select first 10 故障设备,count(*) cnt from table_name group by 故障设备 order by 2 desc
oracle:select * from (select 故障设备,count(*) cnt from table_name group by 故障设备 order by cnt desc) where rownum<11Top
5 楼e170()回复于 2006-03-22 18:59:49 得分 0
谢谢lvjack(追逐梦想) 的详细解答,但是想问一下 count(*) cnt 的CNT是什么啊?Top
6 楼lurel(城市陌生人)回复于 2006-03-22 19:26:16 得分 0
count(*) cnt中的cnt是别名,如果写全的话应该式count(*) as cntTop
7 楼lvjack(追逐梦想)回复于 2006-03-22 21:16:49 得分 0
呵呵,lurel(城市陌生人) 值得纪念的一帖啊,从三角升级为星星了:)Top
8 楼e170()回复于 2006-03-23 10:35:57 得分 0
呵呵,我也研究出来了,谢谢拉,不过在ACCESS里还得改一下:
select top 10 故障设备,count(*) as cnt from table_name group by 故障设备 order by count(*) descTop




