SQL-按内容分组
例如:我有10张唱片SQL-按内容分组,sql,Sql,例如:我有10张唱片 Name | Count -------------+-------- Band 40m | 5 Band 45m | 3 Band 50m | 2 Rope 100m | 7 Rope 200m | 12 Rope 300m | 2 Rope 400m | 5 Ancient Key | 1 Rod | 3 Pickaxe | 3 我要把所有的带子和绳子都
Name | Count
-------------+--------
Band 40m | 5
Band 45m | 3
Band 50m | 2
Rope 100m | 7
Rope 200m | 12
Rope 300m | 2
Rope 400m | 5
Ancient Key | 1
Rod | 3
Pickaxe | 3
我要把所有的带子和绳子都用“SpecName”这个名字组合起来
Name | Count
-------------+--------
SpecName | 36 -> 5+3+2+7+12+2+5 = 36
Ancient Key | 1
Rod | 3
Pickaxe | 3
这可能吗?谢谢…您可以使用
大小写
表达式。一种可能是选择你想要的三个细节,并将其他所有细节综合在一起:
select (case when name in ('Ancient Key', 'Rod', 'Pickaxe')
then name else specname
end) as name,
sum(count)
from t
group by (case when name in ('Ancient Key', 'Rod', 'Pickaxe')
then name else specname
end);
您可以使用
大小写
表达式。一种可能是选择你想要的三个细节,并将其他所有细节综合在一起:
select (case when name in ('Ancient Key', 'Rod', 'Pickaxe')
then name else specname
end) as name,
sum(count)
from t
group by (case when name in ('Ancient Key', 'Rod', 'Pickaxe')
then name else specname
end);
您可以为此使用
大小写表达式:
select
case
when name like 'Band %' or name like 'Rope %' then 'SpecName'
else name
end name,
sum(count) cnt
from mytable
group by
case
when name like 'Band %' or name like 'Rope %' then 'SpecName'
else name
end
:
name | cnt
:---------- | --:
SpecName | 36
Ancient Key | 1
Rod | 3
Pickaxe | 3
名称| cnt
:---------- | --:
规格名称| 36
古钥匙| 1
杆| 3
鹤嘴锄| 3
您可以为此使用大小写表达式:
select
case
when name like 'Band %' or name like 'Rope %' then 'SpecName'
else name
end name,
sum(count) cnt
from mytable
group by
case
when name like 'Band %' or name like 'Rope %' then 'SpecName'
else name
end
:
name | cnt
:---------- | --:
SpecName | 36
Ancient Key | 1
Rod | 3
Pickaxe | 3
名称| cnt
:---------- | --:
规格名称| 36
古钥匙| 1
杆| 3
鹤嘴锄| 3
我需要扭转这一局面。我有1000多条记录,无法写入其他记录。我需要反转此事件。我有1000多条记录,无法写入其他列“MakineListe.MakineAdi”在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。欢迎@HasanKaanTURAN!我刚刚在我的答案中添加了一个db FIDLE供您参考。列“MakineListe.MakineAdi”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。欢迎@HasanKaanTURAN!我刚刚在我的答案中加了一个db提琴,供你参考。