表名:emp
Salary Designation
3000 A
4000 B
5000 C
2000 A
1000 B
sql>select sum(salary) from emp group by designation;
Result
A 5000
B 5000
C 5000
问题:如何在不使用分组的情况下获得相同的结果。
答案 0 :(得分:0)
您是否尝试使用调试程序查看println
语句时的数据值?
另外,为什么不将if(sc.hasNext())
更改为while(sc.hasNext())
以打印扫描仪中的所有内容?
如果扫描仪包含X行数,则需要多次调用nextLine()X来读取所有行。 if语句只调用nextLine()一次,而while语句调用nextLine()直到sc.hasNext()为false,这是X次。
答案 1 :(得分:0)
为什么不在没有GROUP BY
的情况下执行此操作?我觉得这没什么意义。无论如何,你可以先选择不同的名称然后在子查询中得到他们的工资总额来做到这一点:
select (select sum(salary) from designations d2 where d2.designation = d.designation)
from (select distinct designation from designations) d;