我的数据库中有这样的数据:
jamu_a | jamu_b | khasiat
A | B | Z
A | B | X
A | B | C
然后,我想要一个像这样的输出:
jamu_a | jamu_b | khasiat | total
A | B | Z, X, C | 3
我不是MySQL的专家,产生类似输出的是什么样的查询? 告诉我MySQL是否不能这样做并且需要一些编程语言。 提前致谢
答案 0 :(得分:10)
SELECT jamu_a,
jamu_b,
GROUP_CONCAT(khasiat) khasiat,
COUNT(*) total
FROM TableName
GROUP BY jamu_a, jamu_b
输出
╔════════╦════════╦═════════╦═══════╗
║ JAMU_A ║ JAMU_B ║ KHASIAT ║ TOTAL ║
╠════════╬════════╬═════════╬═══════╣
║ A ║ B ║ Z,X,C ║ 3 ║
╚════════╩════════╩═════════╩═══════╝
如果列KHASIAT
上有重复值并且您希望它是唯一的,则可以在DISTINCT
上添加GROUP_CONCAT()
SELECT jamu_a,
jamu_b,
GROUP_CONCAT(DISTINCT khasiat) khasiat,
COUNT(*) total
FROM TableName
GROUP BY jamu_a, jamu_b