MySQL如何分组为行的子组

标签 mysql sql group-by

我有这个数据库:(注意 id 是唯一的)

enter image description here

我想得到这个:

enter image description here

实现此目标的高效 SQL 查询是什么?

最佳答案

SELECT 
    DISTINCT
    foo2.group_id AS group_id,
    if(foo1.group_id = foo2.group_id, foo1.id, NULL) AS id,
    if(foo1.group_id = foo2.group_id, foo1.some_attr, NULL) AS some_attr
 FROM mytable AS foo1
    JOIN
    (SELECT DISTINCT group_id FROM mytable) as foo2        
    ORDER BY group_id, id

关于MySQL如何分组为行的子组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43286667/

相关文章:

mysql - 使用 MYSQL 中的 GROUP BY 计算状态列上的 id 计数以及特定行计数的总和

python - 我可以采取哪些安全措施来保护无法在数据库中进行哈希处理的密码?

python - 无法连接到 MySQL 服务器(连接被拒绝),尝试在 Django 和 MySQL 之间安装连接

mysql - 如何过滤掉特定的电子邮件地址?

python - Pandas 使用 groupby 并根据各种条件删除重复项

python - 两列中 groupby 的唯一值计数

mysql - 如何使数据库中的每个ID都是唯一的

使用子查询更新 MySQL

java - Selenium SQL 数据库连接

sqlite查询对子查询的结果进行简单的计算