两个字段的分组查询问题

twtiqfn 2014-03-07 04:04:52
表fend有lb(类别),grade(档次)两个字段,如下所示
lb grade
a 10
a 10
a 30
b 10
b 20
b 20
b 20
select lb,count(*) as num from fend
group by lb

统计出a的num为3,b的num为4,我还想知道,lb分别为a和b 的记录的grade情况,比如,类别为a 的3条记录grade为10的有2条,为30的有1条,命令如何写呢,谢谢






...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
twtiqfn 2014-03-10
  • 打赏
  • 举报
回复
结贴,显示分数的文本框怎么不能完整显示呢,没法输入分数,哎
發糞塗牆 2014-03-07
  • 打赏
  • 举报
回复
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(发粪涂墙)
-- Date    :2014-03-07 16:29:35
-- Version:
--      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 
--	Apr  2 2010 15:48:46 
--	Copyright (c) Microsoft Corporation
--	Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据[fend]
if object_id('[fend]') is not null drop table [fend]
go 
create table [fend]([lb] nvarchar(2),[grade] int)
insert [fend]
select 'a',10 union all
select 'a',10 union all
select 'a',30 union all
select 'b',10 union all
select 'b',20 union all
select 'b',20 union all
select 'b',20
--------------生成数据--------------------------

select lb,grade,COUNT(1),(SELECT COUNT(1) FROM fend b WHERE fend.lb=b.lb)
from [fend]
GROUP BY lb,grade
----------------结果----------------------------
/* 
lb   grade                   
---- ----------- ----------- -----------
a    10          2           3
a    30          1           3
b    10          1           4
b    20          3           4

*/
唐诗三百首 2014-03-07
  • 打赏
  • 举报
回复
LZ希望的输出结果是怎样的?
--小F-- 2014-03-07
  • 打赏
  • 举报
回复
select
 lb,
 sum(case when grade=10 then 1 else 0 end),
 sum(case when grade=30 then 1 else 0 end)
from 
 fend
group by
 lb
--小F-- 2014-03-07
  • 打赏
  • 举报
回复
select
 id,sum(case when grade=10 then 1 else 0 end),
 sum(case when grade=30 then 1 else 0 end)
from 
tb
group by
 id

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧