一个比较难的统计问题?具体请看

meetweb 2003-08-20 11:48:24
-------------------------------------------------
姓名 金额 修改时间 银行 地点
李四 30 null gh gz
李四 130 null gh gz
李四 250 null jh gz
李四 280 2003-11-1 jh gz
张三 20 2003-11-1 gh f
张二 21 2003-11-1 gh k
张二 21 2003-11-1 gh k
张1 21 2003-11-1 gh k
-------------------------------------------------

统计后结果应该是
地点 银行 总金额 人数 修改时间的人数
gz gh 160 1 0
gz jh 230 1 1
f gh 20 1 1
k gh 63 2 2
...全文
26 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrazyFor 2003-08-20
  • 打赏
  • 举报
回复
select 地点,银行
,sum(金额) 总金额, count(distinct 姓名) 人数, count( distinct (case when 修改时间 is not null then 姓名 end) ) 修改时间的人数
from 表 group by 地点,银行
zjcxc 2003-08-20
  • 打赏
  • 举报
回复
select 地点,银行,总金额=sum(金额),人数=count(distinct *),修改时间人数=count(distinct case when 修改时间 is not null then 姓名 end) from 表 group by 地点,银行

统计时用distinct ,就可以防止重复人数的统计.
pengdali 2003-08-20
  • 打赏
  • 举报
回复
select 地点,银行,sum(金额) 总金额,count(distinct 姓名) 人数,count(distinct case when 修改时间 is not null then 姓名 end) 修改时间的人数 from 表 group by 地点,银行
meetweb 2003-08-20
  • 打赏
  • 举报
回复
如果求总金额到是不难
select 地点 , 银行,Sum("金额") as 总金额 from 表 Group By 地点 , 银行
但是统计人数确不能重复,人名相同算一个人,这个该怎么算
count(??)

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧