【发布时间】:2012-09-03 18:29:46
【问题描述】:
例如,假设有一张扎染 T 恤表……有些衬衫有多种颜色,以字符串形式列出,以逗号分隔。如blue,yellow,red,purple 或green,white,black,red。
我想做一个查询来计算每种颜色出现的次数。我会事先知道列中将存在哪些“颜色”。
我现在正在做的是对每个“颜色”进行单独的查询:
SELECT count(color) WHERE color LIKE '%blue%'
SELECT count(color) WHERE color LIKE '%red%'
SELECT count(color) WHERE color LIKE '%yellow%'
等等……
有没有比 15 个不同的查询更有效的方法?
示例:如果我的表要具有“blue, red, yellow”列“颜色”的值,而另一行将是 color="red, green, yellow" 等...
我正在寻找将返回的查询:
Blue Red Yellow Green
1 2 2 1
【问题讨论】:
-
现在您已经编辑了您的问题,如果您在另一个表中没有颜色名称,这样做会有点复杂。因为在这种情况下,一个简单的连接和使用聚合函数,将简化这个