我想将下面的行分为 3 组:
如何使用 SQL 来完成此操作?预先感谢!
公司名称 | 金额 |
---|---|
A公司 | 1,000,000 |
B公司 | 500,000 |
C公司 | 5,000 |
D公司 | 3,000 |
E公司 | 2,000 |
F公司 | 1,000 |
G公司 | 60 |
H公司 | 30 |
我公司 | 20 |
我们可以将
STRING_AGG()
函数与 CASE
表达式一起使用:
WITH cte AS (
SELECT *,
CASE WHEN Amount < 1000 THEN 'small'
WHEN Amount < 100000 THEN 'medium'
ELSE 'large' END AS grp
FROM yourTable
)
SELECT grp, STRING_AGG(Company, ',') AS companies
FROM cte
GROUP BY grp;