这是简单的一个表结构
name
a
b
c
d
e
f
a
b
c
d
a
a
a
d
e
f
a
这个表有很多重复数据,需要进行重复次数统计
统计重复次数最多的数据数量,重复次数其次的重复数据数量,以及排除前两名,所有其他重复项的加和
统计结果类似
b 200
c 180
其他 220
注意结果只有3行,一条语句写出,可以百度
新手小白,都不知道该怎么查
oracle我会,用ROWID:
查重复数量: SELECT 字段1,字段2,,,,, ,COUNT(ROWID)
FROM 表
GROUP BY 字段1,字段2
删重复数据: DELETE FROM 表
WHERE ROWID NOT IN(
SELECT MIN(ROWID)
FROM 表
GROUP BY 字段1,字段2
) ;
SELECT
(
CASE WHEN nt.ro=1 THEN nt.name
WHEN nt.ro=2 THEN nt.name
ELSE '其他' END
) 'na',
SUM(nt.cu)
FROM
(
SELECT @row_num:=@row_num+1 as 'ro',
b.*
FROM (SELECT @row_num:=0) a,
(SELECT name,COUNT(name) 'cu' FROM table_name GROUP BY name ORDER BY cu DESC) b
) nt
GROUP BY na;
虽然写出来了,但是感觉很low,自己跑了一下,能用。但是如果前几个个数相等的话,只能取两个,剩下的都算到其他的里面了。