ICode9

精准搜索请尝试: 精确搜索
首页?>?数据库> 文章详细

一个表,两列MYSQL查询挑战

2019-10-08 14:16:12??阅读:557??来源: 互联网

标签:sql?mysql


考虑一个名为“comments”的MYSQL表,其中包含2列“hostname”和“username”.

如何返回按主机名排序的列表,其中第2列是与每个主机名关联的用户名列表?我可以看到如何使用像py这样的脚本语言来做到这一点,但它是否可以作为标准的SQL查询?

如果我做

SELECT hostname, count(distinct(username)) 
FROM comments 
GROUP BY hostname

我得到了几乎正确的结果,除了它只给了我与每个主机名相关联的用户名的数量,而不是与每个主机名相关联的实际用户名列表…尝试使用不带count()的distinct(用户名)返回语法错误.

解决方法:

我认为最简单的方法是选择不同的行,并在必要时在客户端重新格式化:

SELECT DISTINCT hostname, username
FROM comments
ORDER BY hostname, username

或者,如果您希望结果连接,则可以使用GROUP_CONCAT

SELECT hostname, GROUP_CONCAT(DISTINCT username) as usernames
FROM comments
GROUP BY hostname


标签:sql,mysql

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有