【问题标题】:How can be sum number of data in the same column for specific condition in sql?对于 sql 中的特定条件,如何计算同一列中的数据总和?
【发布时间】:2020-09-12 15:11:31
【问题描述】:
book1_part1       1   00000118323
book1_part1       1   00000118323
book1_part1       1   00000118323
book1_part1       1   00000118323
book1_part1       2   00000118323
book1_part1       1   00000118337
book1_part1       1   00000118337
book1_part1       1   00000118337
book1_part1       1   00000118337
book1_part1       1   00000118337
book1_part1       1   00000118337
book1_part1       2   00000118337
book1_part1       1   00000118337
book1_part1       1   00000118343

每本书都有id,这个id有份数, 所以数据库看起来像上面,结果应该是:

book1_part1  00000118323 have 6 copies 
book1_part1  00000118337 have 8 copies 
book1_part1  00000118343 have 1 copy 

【问题讨论】:

  • 您使用的是什么 DBMS,MySQL 还是 Oracle?只标记你真正使用的那个。

标签: mysql sql oracle group-by sum


【解决方案1】:

这是一个简单的聚合查询。

假设该表名为books,其列名为nameidno_copies,您将:

select name, id, sum(no_copies) total_no_copies
from books
group by name, id

您可以使用字符串连接轻松生成预期的短语 - 尽管此任务更适合您的应用程序:

select 
    name, 
    concat(
        id, 
        ' has ',
        sum(no_copies),
        case when sum(no_copies) = 1 then ' copy' else ' copies' end
    ) info
from books
group by name, id

【讨论】:

  • 超级,它工作得很好,我可以添加条件,它只会显示超过 4 份的 id 和 book 吗?
  • @PythonP:只需在查询末尾添加having sum(no_copies) > 4
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多