我有一个不同项目的清单,其中一些有一个尺寸和颜色描述在末尾。例如。男士足球夹克-L/黑色。
我希望能够将所有男士的足球夹克产品分组,不论大小或颜色。
╔═══════════════════════════════════╤══════╗
║ Item │ Sold ║
╠═══════════════════════════════════╪══════╣
║ Men's Football Jacket - L / Blue │ 5 ║
╟───────────────────────────────────┼──────╢
║ Men's Football Jacket - M / Black │ 3 ║
╟───────────────────────────────────┼──────╢
║ Women's Socks - S │ 8 ║
╟───────────────────────────────────┼──────╢
║ Women's Socks - L │ 10 ║
╟───────────────────────────────────┼──────╢
║ Gloves │ 12 ║
╚═══════════════════════════════════╧══════╝
Output:
╔═══════════════════════╤══════╗
║ Item │ Sold ║
╠═══════════════════════╪══════╣
║ Men's Football Jacket │ 8 ║
╟───────────────────────┼──────╢
║ Women's Socks │ 18 ║
╟───────────────────────┼──────╢
║ Gloves │ 12 ║
╚═══════════════════════╧══════╝
从示例中可以看到,一些项在字符串中只指定大小,而另一些项既没有指定大小也没有指定颜色。
我会使用MySQL,如果这能带来不同的话。
如果值总是用空格-连字符-空格分隔,那么只需使用
select substring_index(item, ' - ', 1) as item,
sum(sold)
from t
group by substring_index(item, ' - ', 1) ;
如果要按第一个
SELECT SUBSTRING_INDEX(Item, '-', 1) Item,
SUM(Sold) Sold
FROM tablename
GROUP BY SUBSTRING_INDEX(Item, '-', 1)
请参阅演示。br>结果:
> Item | Sold
> :-------------------- | ---:
> Gloves | 12
> Men's Football Jacket | 8
> Women's Socks | 18