‘壹’ 请问sql中的distinct是不是只能应用于后面所有的列
是这样的
distinct是让三列全部相同的只出现一次
相同的方法可以用group by 实现
SELECT A,B,C FROM TABLE1 GROUP BY A,B,C
但是你只对A去重,就该对C,B列进行计算
比如
SELECT A,max(B),max(C) FROM TABLE1 GROUP BY A,B,C
类似这样的
当然那个max函数你可以用min,sum,avg等等
‘贰’ SQL语句distinct把case when then 1的数据给去重了
你应该用 count() 代替 sum(distinct ...) 因为你是求数量啊
‘叁’ sql sum 函数如何加条件
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 列的值相加。
‘肆’ sql重复行数据去重求和
select
sum(b)
from
(select
distinct
*
from
a)
对于表中两行记录完全一样的情况,可以用下面语句获取到去掉重复数据后的记录:
select
distinct
*
from
表名
将查询的记录放到临时表中
‘伍’ sql语句sum的使用
ps:我这样写在数据库中执行的时候它会显示出所有数据
是不是
写成if(rs->next)
应该是while(rs->next)
add:
==<<
但是为什么在后面加个order
by
sum(f_long)
desc就不好使了呢
哪位高手知道啊?怎么进行排序啊!帮个忙
你可以在你最外面再包装个select语句的啊
select
*
from
(你的sql)
a
order
by
a.s
desc
==<<
while(rs->next)
把name
phone
去了也不行
by
s也不行!
这个是因为你的group
by
f_calladdr,name,phone
有这个字段