分类汇总求和SQL语句

数据库例如:id姓名奖金1张三20万2李四10万3王一5万4王一50万5李四6万我要实现下面的效果id姓名奖金4王一55万查出谁的奖金总合是最高的,SQL语句应该怎么写?... 数据库例如:
id 姓 名 奖 金
1 张三 20万
2 李四 10万
3 王一 5万
4 王一 50万
5 李四 6万
我要实现下面的效果
id 姓 名 奖 金
4 王一 55万

查出谁的奖金总合是最高的,SQL语句应该怎么写?
那如果ID不是唯一的呢,比如表是这样的
id 姓 名 奖 金
1 张三 20万
2 李四 10万
4 王一 5万
4 王一 50万
2 李四 6万

我要实现下面的效果
id 姓 名 奖 金
4 王一 55万
结果里必需要带有ID 的字段并且查出谁的奖金总合是最高的
这个ID字段是跟另一个表有关联的,所以结果里必需包含id这个字段
谢谢!
展开
 我来答
ytsword
2009-11-22 · TA获得超过677个赞
知道答主
回答量:95
采纳率:0%
帮助的人:74.2万
展开全部
应该是如下:
假设姓名字段为xx,奖金字段为jj,表名为tb
select a.xx,max(a.jj1) from (select xx,sum(jj) as jj1 from tb group by xx) a group by a.xx

先从表中对每个人的奖金进行汇总,再从中找出最大的

对补充回答:
你的id是主键 如果要加上id 就没办法对某个人进行汇总了 而且就比如你的数据中王一的记录里 id要赋什么值呢,3还是4?这是矛盾的啊

补充的补充回答:
如果id不是唯一,可以如下:
select a.id,a.xx,max(a.jj1) from (select id,xx,sum(jj) as jj1 from tb group by id,xx) a group by a.id,a.xx
jdksuntray
2009-11-19
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
SELECT a.name AS "姓名",MAX(bonus) AS "奖金" FROM
(SELECT name,SUM(bonus) FROM 表名 GROUP BY name) a

name(名称),对应你的表中的名称列的列名
bonus(奖金),对应你的表中的奖金列的列名
a(子表的别名)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蝶儿不忙
2009-11-20 · TA获得超过219个赞
知道答主
回答量:15
采纳率:0%
帮助的人:0
展开全部
select top 1 姓名,sum(奖金) 奖金 from 表 group by 姓名 order by sum(奖金) desc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
058005
2009-11-19 · TA获得超过414个赞
知道小有建树答主
回答量:301
采纳率:50%
帮助的人:122万
展开全部
select 姓名,奖金 from
(select max(姓名) as 姓名,max(sum(奖金)) as 奖金 from 表 Group by 姓名)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuheidanhi
2009-11-19 · 超过18用户采纳过TA的回答
知道答主
回答量:150
采纳率:0%
帮助的人:79.7万
展开全部
select 姓 名,sum(奖 金) from 表 group by 姓 名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式