Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MySQL根据另一列中的不同值聚合一列时排除重复行_Mysql_Sql_Duplicates_Distinct - Fatal编程技术网

使用MySQL根据另一列中的不同值聚合一列时排除重复行

使用MySQL根据另一列中的不同值聚合一列时排除重复行,mysql,sql,duplicates,distinct,Mysql,Sql,Duplicates,Distinct,给定表employees,我需要编写一个查询来获取每个部门的总工资。在这种情况下,表中任何重复的e_id都不能计算两次 该表如下所示: 请原谅我插入数据表的方式,我是一个新发布的问题,所以 .tg{边框折叠:折叠;边框间距:0;} .tg td{字体系列:Arial,无衬线;字体大小:14px;填充:10px 5px;边框样式:实心;边框宽度:1px;溢出:隐藏;分词:正常;边框颜色:黑色;} .tg th{字体系列:Arial,无衬线;字体大小:14px;字体大小:正常;填充:10px 5p

给定表employees,我需要编写一个查询来获取每个部门的总工资。在这种情况下,表中任何重复的e_id都不能计算两次

该表如下所示:

请原谅我插入数据表的方式,我是一个新发布的问题,所以

.tg{边框折叠:折叠;边框间距:0;} .tg td{字体系列:Arial,无衬线;字体大小:14px;填充:10px 5px;边框样式:实心;边框宽度:1px;溢出:隐藏;分词:正常;边框颜色:黑色;} .tg th{字体系列:Arial,无衬线;字体大小:14px;字体大小:正常;填充:10px 5px;边框样式:实心;边框宽度:1px;溢出:隐藏;分词:正常;边框颜色:黑色;} .tg.tg-0pky{边框颜色:继承;文本对齐:左;垂直对齐:顶} .tg.tg-0lax{文本对齐:左;垂直对齐:上} 电子身份证 l_名称 f_名称 薪水 部门id 12 优美 芭芭拉 8400 1. 34 盖茨 大卫 8000 1. 39 帕特里克 尼尔 7500 1. 45 公园 莫莉 8100 2. 45 公园 莫莉 8100 2. 75 盖茨 赖安 8300 2. 您可以尝试在子查询中使用distinct来按部门id删除重复的行,然后进行求和

问题1


@SoniG什么意思?排除重复行上面的查询打印出唯一的薪资值。此外,它将添加重复的行,而不是将其排除。如果是这种情况,那么您的预期输出也是错误的@SoniG,因为此查询的结果与您预期的结果相同。抱歉@D-Shih,我的评论是针对您发布的第一个查询。后来我意识到了这些编辑,并尝试了一下,效果很好。。再次感谢您!我的评论是针对你发布的第一个问题。后来我意识到@SoniG D-Shih的编辑从未改变过@RaymondNijland的查询,发布的第一个查询被编辑/删除。它是-根据e_id、dept id从t组中选择dept_id作为Uniq_dept,SUMsalary作为TotalSalary;对此,我评论说,它没有产生预期的结果。不管怎样,我对使用SO还是很陌生的,我并不想因为太天真而冒犯任何人。为我这边的任何错误道歉,绝对感谢您的帮助!
SELECT dept_id as Uniq_Dept,SUM(salary) as TotalSalary 
FROM (
  SELECT distinct dept_id, salary
  FROM t 
) t1
GROUP BY dept_id;

| Uniq_Dept | TotalSalary |
| --------- | ----------- |
| 1         | 23900       |
| 2         | 16400       |