sql 同一条记录 各个字段比较 取最大值
说起来感觉都麻烦麻烦高手们给指点指点我的记录是这样的同一条记录(B字段对应的值无重复的情况)取C,D,E,F中最大的值,B字段对应的值有重复的情况,那么取重复的x条记录中...
说起来感觉都麻烦 麻烦高手们给指点指点
我的记录是这样的 同一条记录(B字段对应的值无重复的情况)取C,D,E,F中最大的值,B字段对应的值有重复的情况,那么取重复的x条记录中C,D,E,F字段的最大值 。 不知道表述清楚没.... 展开
我的记录是这样的 同一条记录(B字段对应的值无重复的情况)取C,D,E,F中最大的值,B字段对应的值有重复的情况,那么取重复的x条记录中C,D,E,F字段的最大值 。 不知道表述清楚没.... 展开
4个回答
展开全部
declare @IF_repeat int --定义重复变量
@B varchar 20 --定义B字段的值
set @B = '月牙河'
set @IF_repeat = (select count(B) as B from table where B = @B group by B)
IF @IF_repeat> 1
select count(B) as B_num,MAX(C),MAX(D),MAX(E),MAX(F) from table where B = @B group by B having B_num >1
else
select top x count(B) as B_num,MAX(C),MAX(D),MAX(E),MAX(F) from table where B = @B group by B having B_num = 1
@B varchar 20 --定义B字段的值
set @B = '月牙河'
set @IF_repeat = (select count(B) as B from table where B = @B group by B)
IF @IF_repeat> 1
select count(B) as B_num,MAX(C),MAX(D),MAX(E),MAX(F) from table where B = @B group by B having B_num >1
else
select top x count(B) as B_num,MAX(C),MAX(D),MAX(E),MAX(F) from table where B = @B group by B having B_num = 1
追问
你这只有月牙河一种情况啊
追答
是变量,可以先查询出B列的值赋值后输出结果
展开全部
select B,max(G)
from(
select B,G=C from test
union select B,G=D from test
union select B,G=E from test
union select B,G=F from test) as x
group by B
这样?
from(
select B,G=C from test
union select B,G=D from test
union select B,G=E from test
union select B,G=F from test) as x
group by B
这样?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用decode函数
更多追问追答
追问
能具体点吗 没用过
追答
给你举个例子吧。
表test,字段 a 值 10
select decode(sign(a-10),0,100,200) from test;
意思是比较字段a的值减去10是否等于0,如果等于0,就将10改成100,否则改成200.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select b ,max(tgreat) from (
select b,greatest(c,d,e,f)tgreat from test
)
group by b
select b,greatest(c,d,e,f)tgreat from test
)
group by b
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询