| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 892 人关注过本帖, 1 人收藏
标题:group by 分组问题
只看楼主 加入收藏
ivanjoysky
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:22
专家分:137
注 册:2009-11-22
结帖率:66.67%
收藏(1)
已结贴  问题点数:50 回复次数:6 
group by 分组问题
望大神们写出下列实例的sql语句:

例子:
表1:
          摄像头id       车牌号
                1                   苏EM
                2                   苏EN
                3                   苏EX
                4                   苏EG
                5                   京A
                6                   渝G
                7                   苏A

需求如下:苏EM,苏EN   ,苏EX为一组,
                    不包括这三类——苏EM,苏EN   ,苏EX,且以苏E开头的为一组(如苏EG)
                    不以苏E开头的为一组。如(苏A,京A,渝G)

这个组该怎样分啊
搜索更多相关主题的帖子: 摄像头 
2011-02-26 11:10
gdy0349
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:上海
等 级:版主
威 望:11
帖 子:223
专家分:676
注 册:2008-11-12
收藏
得分:13 
我就针对你写的需求简单的写了个方法,你看看是否是你所需要的,有问题的话可以联系我

select id,车牌号,组id from(
select id, 车牌号,'1' 组id from 表名 t where t.车牌号 in('苏EM','苏EN','苏EX')
union all
select id,车牌号,'2' 组id from 表名 t where t.车牌号 like '苏E%' and t.车牌号 not in('苏EM','苏EN','苏EX')
union all
select id,车牌号,'3' 组id from 表名 t where t.车牌号 not like '苏E%') group by id,车牌号,组id

2011-02-28 13:44
png
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:126
专家分:880
注 册:2010-10-6
收藏
得分:13 
group by 用于数据的分组并汇总 - 其关键是汇总. 如:
StudentID    Grade
1            90
1            92
2            95
3            80
3            88
select StudentID, Avg(Grade) as Average_Grade
From StudentGradeTable
group by StudentID

应得出如下结果:
StudentID    Average_Grade
1            91
2            95
3            84
LZ的问题看不出有汇总的要求. 按二楼的建议用 Where 语句进行过滤, 省略 group by即可.
2011-02-28 23:24
gdy0349
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:上海
等 级:版主
威 望:11
帖 子:223
专家分:676
注 册:2008-11-12
收藏
得分:0 
因为他给的数据并不能像简单的group by 那样能书写出来的,如果数据量大的话,就能看出效果了
2011-03-01 20:17
rachel_28
Rank: 2
等 级:论坛游民
帖 子:1
专家分:12
注 册:2011-3-1
收藏
得分:13 
不好意思,不太理解你的问题,不太明白你为什么要底分组。。其实你可以把每一种情况分别写出来啊!!

我建立的表名为bbcnGroupBy
{
苏EM,苏EN,苏EX为一组
select BusNumber as '车牌号-苏E_MNX',cameraID as '摄像头ID'
from bbcnGroupBy
where BusNumber like '苏E[M,N,X]%'
        执行结果为:
                车牌号-苏E_MNX    摄像头ID
                苏EM3242            2
                苏EN4564            3
                苏EX4535            1
                苏EM2342            2

以苏E开头的为一组,但不包括苏EM,苏EN,苏EX这三类
select BusNumber as '车牌号-苏E_^MNX',cameraID as '摄像头ID'
from bbcnGroupBy
where BusNumber like '苏E[^M,N,X]%'
        执行结果为:
                车牌号-苏E_^MNX    摄像头ID
                苏EG2342            4
                苏EA2342            3
                苏EK2342            5
                苏EH2342            7
                苏E92342            4

不以苏E开头的为一组
select BusNumber as '车牌号-^苏E',cameraID as '摄像头ID'
from bbcnGroupBy
where BusNumber not like '苏E%'
        执行结果为:
                车牌号-^苏E    摄像头ID
                晋A5R619            2
                京Nak527            3
                冀A9o90j            32
                豫BM2010            12
}

不知可不可以帮到你。。如果我理解错了,你愿意的话可以告诉我。。。
2011-03-01 22:47
png
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:126
专家分:880
注 册:2010-10-6
收藏
得分:0 
回复 4楼 gdy0349
... 如果数据量大的话,就能看出效果了...

跟量大小没有关系.

楼主的问题涉及不到聚集函数 - 也就是说没有汇总的要求. 所以group by 子句不适用.
2011-03-01 23:12
autobot
Rank: 4
等 级:业余侠客
帖 子:71
专家分:202
注 册:2007-9-6
收藏
得分:13 
select * from 表1 where 车牌号 like '苏E%'
select * from 表1 where 车牌号 not like '苏E%'

你的要求和分组应该没有关系,用这两个语句应该就可以。如果数据量不大就成。
2011-03-02 15:44
快速回复:group by 分组问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016271 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved