我们说我有以下数据:
2
2
2
3
3
3
4
4
5
5
我想输出一个表来计算重复的频率,并按重复次数排序。
在该示例中,有两次数据有3个重复,两次数据有2个重复,因此输出将是:
2 3
2 2
在SQL中有一种简单的方法吗?
答案 0 :(得分:2)
这是直方图直方图查询。您只需要两个聚合:
select cnt, count(*)
from (select col, count(*) as cnt
from t
group by col
) t
group by cnt;
答案 1 :(得分:0)
使用内部查询来获取每个数据点的重复,然后使用外部查询对这些重复进行GROUP BY以获得这些重复发生的次数。
setlocal enabledelayedexpansion
set count=1
echo. >%temp%\get_ep.txt
for /f "delims=" %%i in ('where ".:%string%*" 2^>nul') do (
call getname.cmd "%%i" data
echo %episode% >>%temp%\get_ep.txt
type "%temp%\get_ep" | find /i "%episode%" >nul
if "%errorlevel%"=="1" set /a count+=1
)
endlocal & set count=%count%