我有一个SQL Server
数据库表,其中包含大约100K的发票记录(日期,提供商,类型和金额)。
这是样本数据:
我想根据数量将数据分为4个部分。
答案 0 :(得分:1)
SELECT CASE WHEN Amount < (SELECT AVG(Amount) FROM yourTable) -
(SELECT STDEVP(Amount) FROM yourTable)
THEN 'Group 1'
WHEN Amount < (SELECT AVG(Amount) FROM yourTable) THEN 'Group 2'
WHEN Amount < (SELECT AVG(Amount) FROM yourTable) +
(SELECT STDEVP(Amount) FROM yourTable)
THEN 'Group 3'
ELSE 'Group 4'
END
FROM yourTable
<强>解释强>
我认为您的界限符合以下条件:
X1 - One standard deviation below the mean Amount
X2 - The mean value of the Amount
X3 - One standard deviation about the mean Amount
因此,我假设您的X标记定义了Amount分布的 quartiles 。子查询可用于均值和标准偏差,AVG
和STDEVP
函数可用于此。