5

我的数据库中有这样的数据:

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 是否不能做到这一点并需要一些编程语言。提前致谢

4

1 回答 1

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并且您希望它是唯一的,您可以添加DISTINCTGROUP_CONCAT()

SELECT  jamu_a,
        jamu_b,
        GROUP_CONCAT(DISTINCT khasiat) khasiat,
        COUNT(*) total
FROM    TableName
GROUP   BY  jamu_a, jamu_b
于 2013-04-24T08:13:01.057 回答