我应该使用 NTILE 按数据长度获取数据分布吗?
Should I use NTILE to get a distribution of data by datalength?
使用 SQL Server 2014。
我有一个包含数百万行的 table,其中有一个名为 [Description]
的 varchar(max)
列。 MAX(DATALENGTH(Description))
是 30000。
我想显示一个结果集,以 1000 为一组按数据长度显示数据分布。
因此,第一行将显示数据长度在 0 到 1000 之间的行数,第二行将显示 1001-2000 行数,依此类推。总共 30 行(因为它们是组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
使用 SQL Server 2014。
我有一个包含数百万行的 table,其中有一个名为 [Description]
的 varchar(max)
列。 MAX(DATALENGTH(Description))
是 30000。
我想显示一个结果集,以 1000 为一组按数据长度显示数据分布。
因此,第一行将显示数据长度在 0 到 1000 之间的行数,第二行将显示 1001-2000 行数,依此类推。总共 30 行(因为它们是组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