sql sum 函数如何加条件?

表名为bbc,由下面几列构成(name,region,area,population,gdp)求:显示GDP超过所有Africa(非洲)国家总和的国家.selectnam... 表名为bbc,由下面几列构成(name, region, area, population, gdp)
求:显示GDP超过所有Africa(非洲)国家总和的国家.

select name from bbc
where gdp>(sum(gdp) where region in ('africa'))

提示语句错误
展开
 我来答
hy1397471
推荐于2018-07-06
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
sql 中的 sum 配合 case when 就可以添加条件
例 :
sum(case when a >0 then a else 0 end )
将 a列所以大于 0 的值相加。
sum(case when rq >'2015-1-1' and rq <'2015-2-1' then a else 0 end )
将 rq为1月份的所有 a 列的值相加。
在北安
2008-10-25
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
所有的聚合函数应该是放在select得后面,而不是放在where子句得后面。
所以应该这么写,一个嵌套:
select name
from bbc
where gdp>(select sum gdp
from bbc
where region='africa')
我不知道你得表里得region,area,是什么意思,因为我在百度查的时候都显示的是区域,而且不知道这两个字段都是记录什么的,所以就设定是区域等于‘非洲’,如果执行仍然出错,就把你的表的这两个字段具体记录的数据类型说下。希望对你有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d09b7a2604c
2019-08-12
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
第一个问题:分组了,就不用再用distinct了
第二个问题:where后跟分组前条件,having是分组后条件
第三个问题:你也用总金额为分组,不知道你有什么特定目的.
select
a.code
as
订单编号,a.amount
as
订单总金额,
sum(b.amount
+
b.amount_lans)
as
明细总金额
from
a
left
join
b
on
a.order_id
=
b.order_id
group
by
a.code,a.amount
having
a.total_amount
-
sum(b.amount
+
b.amount_lans)
<>
0
估计这个效果才是你要的
select
a.code
as
订单编号,sum(a.amount)
as
订单总金额,
sum(b.amount
+
b.amount_lans)
as
明细总金额
from
a
left
join
b
on
a.order_id
=
b.order_id
group
by
a.code
having
a.total_amount
-
sum(b.amount
+
b.amount_lans)
<>
0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
但凌妫捷
2019-05-23
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
sql
中的
sum
配合
case
when
就可以添加条件


sum(case
when
a
>0
then
a
else
0
end
)

a列所以大于
0
的值相加。
sum(case
when
rq
>'2015-1-1'
and
rq
<'2015-2-1'
then
a
else
0
end
)

rq为1月份的所有
a
列的值相加。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e425885af
推荐于2017-10-09
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
select name from bbc
where gdp>(select sum(gdp) from bbc where region in ('africa'))
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式