Sql 使用多维数据集预测分组中的记录数
步骤1:运行表单查询Sql 使用多维数据集预测分组中的记录数,sql,sql-server,math,permutation,Sql,Sql Server,Math,Permutation,步骤1:运行表单查询 SELECT field1, field2, ..., fieldn, COUNT(id) FROM foo GROUP BY field1, field2, ..., fieldn 记录列数n,并记录返回的行数r1 步骤2:将查询更改为 SELECT field1, field2, ..., fieldn, COUNT(id) FROM foo GROUP BY field1, field2, ..., fieldn WITH CUBE 记录返回的新行数r
SELECT field1, field2, ..., fieldn, COUNT(id)
FROM foo
GROUP BY field1, field2, ..., fieldn
记录列数n,并记录返回的行数r1
步骤2:将查询更改为
SELECT field1, field2, ..., fieldn, COUNT(id)
FROM foo
GROUP BY field1, field2, ..., fieldn
WITH CUBE
记录返回的新行数r2
问题:如果我们知道n和r1,是否有计算/预测r2的公式/算法?最大行数是每个分组列的唯一值数+1的叉积。您可以使用以下方法获得粗略估计:
SELECT (COUNT(DISTINCT field1)+1) * (COUNT(DISTINCT field2)+1)
FROM foo
可能没有您需要的准确,但这只是一个开始。这确实为r2的值提供了一个很好的上限。由于没有其他回应/答案,我花了时间对这个问题进行了理论解释,希望我们能通过这种方式得到答案: