输入数据是: 数据格式为: (类,类型,名称), 数据是:
(1, a, p1)
(1, b, p2)
(1, c, p3)
(2, a, p4)
根据我需要制作的上述数据。
我想按(类和类型)对数据进行分组。 但是type = a和type = b应该在一个组中计数。 所以,
p1 and p2 is one group,
p3 is one group,
p4 is ome group.
输出应为: 数据格式为: (分类,计数)。 数据是:
(1, 2)
(1, 1)
(2, 1)
有人可以帮我在SQL中执行此操作吗? 非常感谢。
答案 0 :(得分:1)
您需要的是select
class, count(*)
from
table_name
group by
class, case when type_col in ('a','b') then 'a' else type_col end;
Counter
答案 1 :(得分:0)
您可以使用case
来组合这些组:
select class, (case when type in ('a', 'b') then 'combined' else type end) as grp,
count(*)
from t
group by class, (case when name in ('a', 'b') then 'combined' else type end)
您不需要将grp
列放在select
中。我认为这些信息的输出更清晰。