我应该使用NTILE来获取datalength的数据分布吗?
问题描述:
使用SQL Server 2014.我应该使用NTILE来获取datalength的数据分布吗?
我有一个数百万行的表,其中varchar(max)
列名为[Description]
。该MAX(DATALENGTH(Description))
是30000
我想说明一个结果集显示数据的数据长度在1000
群体分布,第一行会显示,有0之间的数据长度行的总数1000,第二行将显示1001-2000行的计数等等。共有30行(因为它们是1000的组)。
NTILE是否是正确的工具?你会如何编写这个查询?
答
请勿使用尼龙。使用这个:
SELECT
COUNT(*) cnt,
DATALENGTH(Description)/1000 grp,
CAST(DATALENGTH(Description)/1000 * 1000 as varchar(10)) +'-'+
CAST((DATALENGTH(Description)/1000 + 1) * 1000 as varchar(10)) Interval
FROM @t
GROUP BY DATALENGTH(Description)/1000