此问题在此处已有答案:
Can I concatenate multiple MySQL rows into one field?(16个答案)
昨天关门了。
我有一个名为students的表,它包含了学生的系和年龄,每一行代表学生的系和他们各自的年龄。
| 部门|年龄|
| - ------|- ------|
| 土木工程|十九|
| 土木工程|二十个|
| 统计学|十九|
| 统计学|十九|
| 机械工程|二十一|
| 机械工程|二十个|
| 计算机科学|二十五|
| 计算机科学|二十四|
| 土木工程|二十一|
| 土木工程|二十二|
| 统计学|二十个|
| 机械工程|二十个|
现在,我需要找到每个部门的唯一年龄计数,并在第三列中列出与该部门对应的所有唯一年龄。输出应如下所示:
| 部门|计数唯一年龄|唯一_年龄|
| - ------|- ------|- ------|
| 土木工程|四个|十九、二十、二十一、二十二|
| 统计学|第二章|十九、二十|
| 机械工程|第二章|二十、二十一|
| 计算机科学|第二章|二十四、二十五|
我已经试过了-
SELECT DISTINCT department, COUNT(DISTINCT age) AS count_unique_age,
FROM students
GROUP BY department
使用此查询,我可以解出前两列。如何解出第三列?
1条答案
按热度按时间kxxlusnw1#
这是一个简单的聚合查询;在MySQL中,我们可以使用
group_concat
进行字符串聚合。由于我们只计算非重复值,我想知道首先在子查询中进行重复数据删除是否更有效: