根据不同条件对数据进行分组

时间:2019-01-24 10:35:04

标签: sql

Tables and logic Example Output 假设“ column1”和“ column2”是数据表中的唯一列。因此,我试图基于column2对数据进行分组。例如,表如下:

APL Apple
APL Apple
APL Apple
ORG Orange
ORG Apple
GVA Apple.

APL是Apple,ORG是Orange,因此它们将分别分为“ A”和“ B”。 ORG苹果和GVA苹果将被归类为“其他”。我怎么做?我需要查询表吗?如果可以,如何将查询表合并到数据表中?

2 个答案:

答案 0 :(得分:0)

SELECT COL1, COL2, ifnull(LkpTbl.grp, 'Others') grp
FROM Table1
left outer join LkpTbl
  in table1.col1 = LkpTbl.col1

仅将需要分组的查询表APLORG放入

答案 1 :(得分:0)

您只想要一个case表达式吗?

select (case when column1 = 'APL' and column2 = 'Apple' then 'A'
             when column1 = 'ORG' and column2 = 'Orange' then 'B'
             else 'Others'
        end) as column3
from t;

如果要将其用作查找表,则可能是这样的:

select t.*, coalesce(v.grp, 'Others')
from t left join
     (values ('APL', 'Apple', 'A'), ('ORG', 'Orange', 'B')
     ) v(column1, column2, grp)
     on t.column1 = v.column1 and t.column2 = v.column2;