SQL 根据数量将行分类为不同的组

问题描述 投票:0回答:1

我想将下面的行分为 3 组:

  1. 第一组包括A公司和B公司,金额非常大
  2. 第2组包括C、D、E、F公司,金额中等
  3. 第3组包括G、H、I公司,金额很小

如何使用 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
sql sql-server case
1个回答
0
投票

我们可以将

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;
© www.soinside.com 2019 - 2024. All rights reserved.