【问题标题】:hi i need to get a sum of rows , group by with supplier and item name mysql嗨,我需要获取行的总和,按供应商和项目名称 mysql 分组
【发布时间】:2020-08-30 22:24:13
【问题描述】:

我的数据库会是这样的

id|item_name|item_qty|added_by
1 |panadol  |200     |1
2 |panadol  |300     |2
3 |panadol  |100     |1
4 |biner    |100     |1

我需要的输出应该是这样的

id|item_name|item_qty|added_by|total
1 |panadol  |300     |1       |600
2 |panadol  |300     |2       |600
3 |biner    |100     |1       |100

我需要可用产品的总数以及每个供应商关于每种产品的总数

Medicine:"Panadol",
1(supplier ID):300,
2(suppID):300,
Sum:600

Medicine:"biner",
1(supplier ID):100,
Sum:100

【问题讨论】:

    标签: php mysql sum window-functions


    【解决方案1】:

    您可以使用聚合和窗口函数 - 如果您运行的是 MySQL 8.0:

    select
        item_name,
        sum(item_qty) item_qty,
        added_by,
        sum(sum(item_qty)) over(partition by item_name) total
    from mytable
    group by item_name, added_by
    

    在早期版本中,您可以join 两个聚合查询,或使用相关子查询:

    select
        item_name,
        sum(item_qty) item_qty,
        added_by,
        (select sum(t1.item_qty) from mytable t1 where t1.item_name = t.item_name) total
    from mytable t
    group by item_name, added_by
    

    【讨论】:

      猜你喜欢
      • 2021-10-21
      • 2020-10-09
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多