我应该使用NTILE按数据长度分配数据吗?

时间:2015-03-02 10:20:33

标签: sql-server tsql sql-server-2014

使用SQL Server 2014。

我有一张包含数百万行的表格,其中varchar(max)列名为[Description]MAX(DATALENGTH(Description))为30000。

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

因此,第一行将显示数据长度介于0和1000之间的行数,第二行将显示行数1001-2000等。总共30行(因为它们是1000的组) )。

NTILE是否是正确的工具?你会怎么写这个查询?

1 个答案:

答案 0 :(得分:1)

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