您的位置:程序门 -> ms-sql server -> 应用实例



求一sql语句


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


求一sql语句[已结贴,结贴人:gangnet]
发表于:2007-12-11 15:25:43 楼主
类似这样的语句怎么写:比如有三列

  name         state       value  

    1                 1             100
    2                 2             200
    1                 1             80
    2                 2             300

就是根据   name   分组,   查出每组所有记录的条数和   根据name分组,查出其中   值   大于100的记录条数
也就是在一个语句中根据一个分组条件查出   两列来,其中后一列还带附加条件!
发表于:2007-12-11 15:29:231楼 得分:0
sql code
select name , cnt1 = count*) , cnt2 =select count*) from tb where value > 100 and name = a.name) from tb group by name
发表于:2007-12-11 15:29:282楼 得分:20
select   name,count(*)   ,
sum(case   when   alue> 100   then   1   else   0   end)
from   t
group   by   name
发表于:2007-12-11 15:29:323楼 得分:0
查出每组所有记录的条数和

select   name,count(1)   from   tab   group   by   name

根据name分组,查出其中       值       大于100的记录条数

select   name,count(1)   from   tab   where   value> 100   group   by   name  
发表于:2007-12-11 15:30:174楼 得分:0
sql code
--try select name, total=count1), over100=sumcase when value>100 then 1 else 0 end) from tb group by name
发表于:2007-12-11 15:31:035楼 得分:0
sql code
create table tb(name int, state int, value int) insert into tb values1, 1 , 100 ) insert into tb values2, 2 , 200 ) insert into tb values1, 1 , 80 ) insert into tb values2, 2 , 300 ) go select name , cnt1 = count*) , cnt2 =select count*) from tb where value > 100 and name = a.name) from tb a group by name drop table tb /* name cnt1 cnt2 ----------- ----------- ----------- 1 2 0 2 2 2 (所影响的行数为 2 行) */
发表于:2007-12-11 15:32:016楼 得分:0
我在一楼少写了个表别名   a,不好意思.
发表于:2007-12-11 15:33:347楼 得分:0
sql code
create table tb(name int, state int, value int) insert into tb values1, 1 , 100 ) insert into tb values2, 2 , 200 ) insert into tb values1, 1 , 80 ) insert into tb values2, 2 , 300 ) go --try select name, total=count1), over100=sumcase when value>100 then 1 else 0 end) from tb group by name drop table tb /* name total over100 ----------- ----------- ----------- 1 2 0 2 2 2 */
发表于:2007-12-11 15:41:168楼 得分:0
唉,搞错了,本来是想把分给一楼兄弟的,结果...
谢谢大家!想加分的,结果提示时间太短,再次谢谢大家!


快速检索

最新资讯
热门点击