Sql server 我应该使用NTILE按数据长度获取数据分布吗?

Sql server 我应该使用NTILE按数据长度获取数据分布吗?,sql-server,tsql,sql-server-2014,Sql Server,Tsql,Sql Server 2014,使用SQL Server 2014 我有一个包含数百万行的表,其中有一个名为[Description]的varchar(max)列。最大值(DATALENGTH(Description))为30000 我想显示一个结果集,以1000为一组,按数据长度显示数据的分布 因此,第一行将显示datalength在0和1000之间的行数,第二行将显示总计30行的行数1001-2000,等等(因为它们是1000行的组) NTILE是这方面的正确工具吗?如何编写此查询?不要使用ntile。使用以下命令: SE

使用SQL Server 2014

我有一个包含数百万行的表,其中有一个名为
[Description]
varchar(max)
列。
最大值(DATALENGTH(Description))
为30000

我想显示一个结果集,以1000为一组,按数据长度显示数据的分布

因此,第一行将显示datalength在0和1000之间的行数,第二行将显示总计30行的行数1001-2000,等等(因为它们是1000行的组)


NTILE是这方面的正确工具吗?如何编写此查询?

不要使用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