我想在多行中显示一次,使用2 groupby
我的table是这样的
+----+----------+-------+
| ID | BRAND | TYPE |
+----+----------+-------+
| 1 | A | Clothes |
| 2 | A | Hat |
| 3 | A | Hat |
| 4 | A | Hat |
| 5 | B | Jeans |
| 6 | B | Jeans |
| 7 | B | Hat |
| 8 | C | Clothes |
| 9 | C | Jeans |
| 10 | C | Jeans |
| 11 | C | Hat |
+----+-------+-----------+
我的问题是这样的
SELECT brand,
type,
COUNT(*) AS total
FROM store
GROUP BY brand, type
当我运行该查询时,结果是
-----------------------------
| BRAND | TYPE | TOTAL |
-----------------------------
| A | Clothes | 1 |
| A | Hat | 3 |
| B | Jeans | 2 |
| B | Hat | 1 |
| C | Clothes | 1 |
| C | Jeans | 2 |
| C | Hat | 1 |
------------------------------
这不是我期望的结果。我只想展示一次 Brand
以下是 Type
如果有多个相同的值,也显示一次。
更新:预期结果
-------------------------------------------
| BRAND | TYPE | TOTAL |
-------------------------------------------
| A | Clothes, Hat | 4 |
| B | Jeans, Hat | 3 |
| C | Clothes, Jeans, Hat | 4 |
-------------------------------------------
3条答案
按热度按时间fxnxkyjh1#
你的描述建议我做条件聚合:
如果您希望一行包含多种类型,那么可以使用
GROUP_CONCAT
:vlju58qv2#
有了这个,每个牌子就有一种
选择品牌,最大(类型)作为类型,计数(*)作为商店总数
按品牌分组
ecr0jaav3#
使用
Group_Concat
函数Distinct
子句下,可以在逗号分隔的字符串中获取所有不同且唯一的类型brand
组。使用
Sum
函数来计算总数请尝试以下操作: