免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1968 | 回复: 2
打印 上一主题 下一主题

请教一个group 查询 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-06 21:01 |只看该作者 |倒序浏览
transid        id        s1        s2        s3        s4        s5
6914045        5589714        .003        .005        .011        .003        .013
6914045        4726311        .009        .004        .005        .006        .002
6914045        5541306        .031        .026        .057        .003        .064
6914045        4592063        .026        .018        .021        .036        .074


我想得到这样的结果:
transid        s1        s2        s3        s4        s5
6914045  4              4              3              4              2

计算在是s1中小于0.05的数值有4个,在s2中小于0.05的 有4个,在s3中有3个,s4中有4个,s5中有2个

我写的sql:

SELECT transid, Count(s1) AS nums1, Count(s2) AS nums2, Count(s3) AS nums3, Count(s4) AS nums4, Count(s5) AS nums5
FROM test
GROUP BY transid;

却不知如何对count进行限制,请大侠帮忙。

论坛徽章:
0
2 [报告]
发表于 2007-03-08 16:42 |只看该作者

用这种方法应该可以的

SELECT transid, sum(case s1 when s1>0.05 then 1 end) as nums1,sum(case s2 when s2>0.05 then 1 end) as nums2 FROM test
GROUP BY transid;

用case语句可以解决,我已经试验了

论坛徽章:
0
3 [报告]
发表于 2007-03-14 10:30 |只看该作者
谢谢。我试过,确实可行。

我又查了一下case的用法:
CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END CASE
Or:

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE

此例中似乎用下面一种合适。最后用下面的select语句得到了预期的结果。

SELECT transid, sum(case  when s1 < 0.05 then 1 end) as nums1, sum(case  when s2 < 0.05 then 1 end) as nums2, sum
(case  when s3 < 0.05 then 1 end) as nums3, sum(case  when s4 < 0.05 then 1 end) as nums4,sum(case  when s5 < 0.05 then
1 end) as nums5 from ttt GROUP BY transid;


比我后来用的笨方法强的太多。

[ 本帖最后由 minewhy 于 2007-3-14 15:51 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP