sql - 分组多行

标签 sql group-by

这是我的表:

BOX  ITEM
1    0000001
1    0000002
1    0000003
1    0000004
2    1111111
2    1111111
2    1111111
2    1111111
3    0000001
3    0000002
3    0000003
3    0000004
4    0000001
4    0000002
4    0000003

意思是:
  • 框 1 有 4 个不同的项目。
  • 框 2 有 4 个项目。
  • 框 3 有 4 个项目。
  • 方框 4 有 3 个项目。

  • 注意力!
  • 框 1 和框 3 包含完全相同的项目,因此我们可以将它们分组。
  • 框 4 包含的内容与框 1 和框 3 几乎相同但并不完全相同,因此,我们不能将框 1 和框 3 分组。

  • 现在的问题;

    我想将所有内容完全相同的盒子分组,计算相同盒子的数量,像这样,但任何其他方法都是有效的,这只是说明我的需求的一个例子:
    QUANTITY   ITEM       BOX
       2       0000001    1, 3
       2       0000002    1, 3
       2       0000003    1, 3
       2       0000004    1, 3
       1       1111111    2
       1       1111111    2
       1       1111111    2
       1       1111111    2
       1       0000001    4
       1       0000002    4
       1       0000003    4
    

    (这意味着,我有 2 个盒子,其中的项目分别为 0000001、0000002、0000003 和 0000004,分别是盒子 1 和盒子 3。

    我有 1 个盒子,里面有 111111、111111……等等)

    我找不到办法做到这一点......有什么帮助吗?

    最佳答案

    假设这是 MySQL,请尝试:

    select count(distinct box) quantity, items, group_concat(box) boxes 
    from
    (select box, group_concat(item) items
     from my_table
     group by box) v
    group by items
    

    关于sql - 分组多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464066/

    相关文章:

    sql - 获取日期前后一列的总和?

    MYSQL 从表中删除属于特定日期的重复值

    mysql - mysql 日志表中事件首次出现

    python - 每四行取平均值,但保留时间戳值

    sql - 用于报告应用程序的动态 SQL

    mysql - 优化SQL中大数据的left join select查询

    javascript - 社交网络帖子未发送到数据库

    python - Pandas 数据框 : get rows with same pair of values in two specific columns

    SQL 语句 HAVING MAX(some+thing)=some+thing

    mysql - 如何编写选择可变长度子字符串的 SQL 查询