select avg(saleamount) from (select top 80 percent * from caiji) a
select top 80 percent * from 用戶表 order by newid()
80%、90%、95%的用户基于什么标准啊。 SELECT userbm,AVG(saleamount) AS OrderAVG FROM caiji GROUP BY userbm
向你这种统计我感觉你应该是要采用随机采样的方法,然后多采样几次再求个平均值SELECT AVG(linetotal) FROM Sales.SalesOrderDetail AS sod TABLESAMPLE(80 PERCENT) SELECT AVG(linetotal) FROM Sales.SalesOrderDetail AS sod TABLESAMPLE(90 PERCENT) SELECT AVG(linetotal) FROM Sales.SalesOrderDetail AS sod TABLESAMPLE(95 PERCENT)
那你就这样吧:select top 80 percent AVG([购买量]) as [平均购买量] from caiji order by newid() ---80% select top 90 percent AVG([购买量]) as [平均购买量] from caiji order by newid() ---90% select top 95 percent AVG([购买量]) as [平均购买量] from caiji order by newid() ---95%
刚才的分别对应的百分比的总共[平均购买量],如果换算成个人的话,再除以那个百分比:select top 80 percent AVG([购买量])/80.0 as [平均购买量] from caiji order by newid() ---80% select top 90 percent AVG([购买量])/90.0 as [平均购买量] from caiji order by newid() ---90% select top 95 percent AVG([购买量])/95.0 as [平均购买量] from caiji order by newid() ---95%
select userbm, avg(saleamount) from (select top 80 percent* from caiji where order by newid())a group by userbm --各统计80%的用户,购买量平均值。
(select top 80 percent * from caiji) a
SELECT userbm,AVG(saleamount) AS OrderAVG
FROM caiji
GROUP BY userbm
SELECT AVG(linetotal) FROM Sales.SalesOrderDetail AS sod TABLESAMPLE(90 PERCENT)
SELECT AVG(linetotal) FROM Sales.SalesOrderDetail AS sod TABLESAMPLE(95 PERCENT)
还有,你们知道“各统计80%、90%、95%的用户” 这里面的百分比是怎么来的吗?
这样会误导人的啊,哥哥们
select top 90 percent AVG([购买量]) as [平均购买量] from caiji order by newid() ---90%
select top 95 percent AVG([购买量]) as [平均购买量] from caiji order by newid() ---95%
select top 90 percent AVG([购买量])/90.0 as [平均购买量] from caiji order by newid() ---90%
select top 95 percent AVG([购买量])/95.0 as [平均购买量] from caiji order by newid() ---95%
select userbm, avg(saleamount) from
(select top 80 percent* from caiji where order by newid())a
group by userbm --各统计80%的用户,购买量平均值。