首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于查询分组的问题。。。。。。 [已结贴,结贴人:flashasp]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flashasp
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-05-30 17:14:50 楼主
    select s_ip ,count(*) as n from systemcount group by  s_ip
    --需查询结果


    192.168.0.1 1
    192.168.0.106 1
    192.168.1.116 1
    192.168.2.116 1

    61.125.137.5 1
    61.125.1.5 1

    --需查询结果

    192.168.*.* 4
    61.125.*.*      2

    这样的结果该如何来搞啊,谢谢!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Limpire
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

      2

    发表于:2008-05-30 17:18:211楼 得分:10
    SQL code
    --> 测试数据: #T if object_id('tempdb.dbo.#T') is not null drop table #T create table #T (ip varchar(13),num int) insert into #T select '192.168.0.1',1 union all select '192.168.0.106',1 union all select '192.168.1.116',1 union all select '192.168.2.116',1 union all select '61.125.137.5',1 union all select '61.125.1.5',1 select parsename(ip,4)+'.'+parsename(ip,3)+'.*.*' as ip, count(*) as n from #T group by parsename(ip,4)+'.'+parsename(ip,3)+'.*.*' /* ip n ----------- ----------- 192.168.*.* 4 61.125.*.* 2 */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangCK
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-05-30 17:19:522楼 得分:0
    用left将前两个.的..再加'*'..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flashasp
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-30 17:21:093楼 得分:0
    select s_ip ,count(*) as n from systemcount group by  s_ip
    --查询结果


    s_ip          n

    192.168.0.1  1
    192.168.0.106 1
    192.168.1.116 1
    192.168.2.116 1

    61.125.137.5  1
    61.125.1.5    1

    --需要的查询结果

    192.168.*.*  4
    61.125.*.*    2

    也就是按IP的前两端字符来分组统计N,谢谢解答!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fuda_1985
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-30 17:21:274楼 得分:0
    帮顶。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Haiwer
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

      5

    发表于:2008-05-30 17:21:575楼 得分:0
    SQL code
    declare @t table (s_ip varchar(100)) insert @t select '192.168.0.1' union all select '192.168.0.106' union all select '192.168.1.116' union all select '192.168.2.116' union all select '61.125.137.5' union all select '61.125.1.5 1' select PARSENAME(s_ip,4)+'.'+PARSENAME(s_ip,3)+'.*.*' as s_ip ,count(*) as n from @t group by PARSENAME(s_ip,4)+'.'+PARSENAME(s_ip,3)+'.*.*' --结果 s_ip n ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- 192.168.*.* 4 61.125.*.* 2 (所影响的行数为 2 行)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangCK
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-05-30 17:23:006楼 得分:10
    SQL code
    --> 测试数据: #T if object_id('tempdb.dbo.#T') is not null drop table #T create table #T (IP varchar(13),c2 int) insert into #T select '192.168.0.1',1 union all select '192.168.0.106',1 union all select '192.168.1.116',1 union all select '192.168.2.116',1 union all select '61.125.137.5',1 union all select '61.125.1.5',1 go select left(IP,charindex('.',IP,charindex('.',IP)+1))+'*.*',count(*) cnt from #T group by left(IP,charindex('.',IP,charindex('.',IP)+1))+'*.*' go drop table #T /* cnt ---------------- ----------- 192.168.*.* 4 61.125.*.* 2 (所影响的行数为 2 行) */
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved