mysql - 如果从顶部开始相同,如何隐藏/删除行中的数据

标签 mysql sql select sum

我有像这样来自 mysql 查询的表事务。

 ____________________________________________________________
 | id | noskom      | nonpbm     |    noskop   |    npbp     |
 |____|_____________|____________|_____________|_____________|
 |  1 | 001         |   10       |       20    |       20    |
 |  2 | 001         |   20       |       10    |       20    |
 |  3 | 002         |    5       |       10    |       20    |
 |  4 | 003         |   30       |        5    |       20    |
 |____|_____________|____________|_____________|_____________|

我想要结果

 select sum(nonpbm),sum(noskop),sum(npbp) from transaction group by noskom

 ____________________________________________________________
 | id | noskom      | nonpbm     |    noskop   |    npbp     |
 |____|_____________|____________|_____________|_____________|
 |  1 | 001         |   30       |       30    |       40    |
 |  2 |             |            |             |             |
 |  3 | 002         |    5       |       10    |       20    |
 |  4 | 003         |   30       |        5    |       20    |
 |____|_____________|____________|_____________|_____________|

什么是mysql查询

最佳答案

SELECT 
    noskom , 
    SUM(nonpbm) as nonpbm , 
    sum(noskop) as noskop , 
    sum(npbp) as  npbp
FROM mytable 
GROUP BY noskom 

如果要列出对聚合值有贡献的所有行的 ID,还可以添加此列:

GROUP_CONCAT(id ORDER BY id) AS id

这将为您提供一个以逗号分隔的 ID 列表。您可以指定不同的分隔符,例如 EOL:

GROUP_CONCAT(id ORDER BY id SEPARATOR '\r\n') AS id

'\r\n' 是 Windows 世界中的标准行分隔符。如果您在不同的平台上,请更改为 '\n''\r'

关于mysql - 如果从顶部开始相同,如何隐藏/删除行中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13967574/

相关文章:

python - 在 Django 中获取 'popular categories'

php - 无法在 mysql 中使用 foreach 值

php - 获取数组中的sql数据

php - MySQL 数据库时区设置不正确 - 为什么?

mysql - 对于给定的一组数据,如何检查输入是否具有整组数据?

sql - 在 SQL 中要求列包含每个指定值的更好方法

java - jOOQ - 插入多个数据并获取生成的 ID 的一般方法

sql - 计算出现次数

php - 如何使用 PHP 和 Codeigniter 处理 foreach 中 mysql 中的 SELECT(MAX())

MYSQL:计算特定整数出现在列中的次数,然后计算其中有多少出现?