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/

    相关文章:

    mysql - SQL/HiveQL : Is there a way to count the number of JOIN <table> ON <condition> matches per row without a group by?

    mysql - SQL概念: nested loop

    c# - 从 SqlCommand 对象发送什么 SQL

    elasticsearch - 在Elasticsearch中按查询分组

    python - Pandas Multiindex Groupby 聚合列与另一列的值

    mysql - 在 mysql 查询中按条件分组

    Mysql 左连接无法返回第一个表中的所有值

    MySQL SELECT 列,其中两列都是唯一的

    mysql - 如何使用 SQL 查询获取该表单的数据

    postgresql - JPA - Postgres - 如何使用 Distinct 和 Group By 从表中获取结果