表结构:cat_id, name, num1, num2, num3
1 张一 2 0 100
2 王二 3 1 33
3 李四 1 33 21
1 钱三 11 8 1122
2 麻大 100 22 0
...
现在根据cat_id分组,要求结果如下:cat_id, num1大于10的用户总数, num2大于30的用户总数, num3大于100的用户总数 查询语句大至结构:select cat_id,(条件一),(条件二),(条件三) from myTable group by cat_id注意是在分组的基础上进行统计,知道一个条件可以用having,但多个条件怎么写呢?还请指点,不甚感激。
1 张一 2 0 100
2 王二 3 1 33
3 李四 1 33 21
1 钱三 11 8 1122
2 麻大 100 22 0
...
现在根据cat_id分组,要求结果如下:cat_id, num1大于10的用户总数, num2大于30的用户总数, num3大于100的用户总数 查询语句大至结构:select cat_id,(条件一),(条件二),(条件三) from myTable group by cat_id注意是在分组的基础上进行统计,知道一个条件可以用having,但多个条件怎么写呢?还请指点,不甚感激。
解决方案 »
- 求ASP.NET生成code128条形码程序!
- 利用JavaScript取得gridview的当前行号时的奇怪现象
- 为什么我手动停止IIS,然后重启IIS后,application变量的值没有消失,而运行iisreset命令时,application变量就会消失?
- ASP.NET 中动态生成图形的保存问题
- SESSION 问题 求解
- 分享ASP.NET视频系列教程——第十九讲 ASP.NET内置的AJAX
- asp.net讀取excel問題,請大俠門幫忙啊!!!!!!!
- 谁帮我改一下access的数据库连接代码
- 为什么页面反应这么慢?
- datagride应用—————背景色间隔相同
- 小问题
- Repeater添加图片问题!
1 张一 2 0 100
2 王二 3 1 33
3 李四 1 33 21
1 钱三 11 8 1122
2 麻大 100 22 0现在根据cat_id分组,要求结果如下:
cat_id, num1大于10的用户总数, num2大于30的用户总数, num3大于100的用户总数
*/drop table #test
create table #test(cat_id int, name nvarchar(50), num1 int, num2 int, num3 int)
insert into #test (cat_id, name, num1, num2, num3) values(1,'张一', 2, 0, 100)
insert into #test (cat_id, name, num1, num2, num3) values(2,'王二', 3, 1, 33)
insert into #test (cat_id, name, num1, num2, num3) values(3,'李四', 1, 33, 21)
insert into #test (cat_id, name, num1, num2, num3) values(1,'钱三', 11, 8, 1122)
insert into #test (cat_id, name, num1, num2, num3) values(2,'麻大', 100, 22, 0)select a.cat_id, b.num1, c.num2, d.num3
from (select cat_id from #test group by cat_id) a, (select count(*) as num1 from #test where num1 > 10) b,
(select count(*) as num2 from #test where num2>30) c, (select count(*) as num3 from #test where num3>100) d
From
(Select cat_id, Count(*) as num1Count From Table1 Where num1>10 Group by cat_id) as cat1,
(Select cat_id, Count(*) as num2Count From Table1 Where num2>30 Group by cat_id) as cat2,
(Select cat_id, Count(*) as num3Count From Table1 Where num3>100 Group by cat_id) as cat3
Where cat1.cat_id=cat2.cat_id and cat1.cat_id=cat3.cat_id
create table #Test1
(cat_id int,
name varchar(10),
num1 int,
num2 int,
num3 int)insert #Test1 values(1,'张一',2,0,100)
insert #Test1 values(2,'王二',3,1,33)
insert #Test1 values(3,'李四',1,33,21)
insert #Test1 values(1,'钱三',11,8,1122)
insert #Test1 values(2,'麻大',100,22,0)select a.cat_id,num1大于10的用户总数,num2大于30的用户总数,num3大于100的用户总数 from
(select cat_id from Test1 group by cat_id) a left join
(select cat_id,count(cat_id)'num1大于10的用户总数' from Test1where num1 > 10 group by cat_id) b
on a.cat_id = b.cat_id left join
(select cat_id,count(cat_id)'num2大于30的用户总数' from Test1where num2 > 30 group by cat_id) c
on a.cat_id = c.cat_id left join
(select cat_id,count(cat_id)'num3大于100的用户总数' from Test1 where num3 > 100 group by cat_id) d
on a.cat_id = d.cat_iddrop table #Test1
(cat_id int,
name varchar(10),
num1 int,
num2 int,
num3 int)insert #Test1 values(1,'张一',12,0,100)
insert #Test1 values(2,'王二',3,1,33)
insert #Test1 values(3,'李四',1,33,21)
insert #Test1 values(1,'钱三',11,8,1122)
insert #Test1 values(2,'麻大',100,22,0)select distinct a.cat_id,b.num1大于10的用户总数,c.num2大于30的用户总数,d.num3大于100的用户总数
from #Test1 as a
left join
(select cat_id,count(num1) as num1大于10的用户总数
from #Test1
where num1>10
group by cat_id) as b
on a.cat_id = b.cat_id
left join
(select cat_id,count(num1) as num2大于30的用户总数
from #Test1
where num2>30
group by cat_id) as c
on a.cat_id = c.cat_id
left join
(select cat_id,count(num1) as num3大于100的用户总数
from #Test1
where num3>100
group by cat_id) as d
on a.cat_id = d.cat_iddrop table #Test1