首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

能否用group by来完成,请

2013-06-19 
能否用group by来完成,请高手指点。数据如下idcodetype访问城市11011北京21013上海31015南京41021杭州51022

能否用group by来完成,请高手指点。
数据如下
idcodetype访问城市
11011北京
21013上海
31015南京
41021杭州
51022深圳
61031北京

想要得到如下数据(code相同取ID最大的记录,并且统计code相同的记录数)

idcodetype访问城市记录数
31015南京3
51022深圳2
61031北京1 sql group?by
[解决办法]

----------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-04-27 00:11:32
-- Version:
--      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) 
--Jun 17 2011 00:57:23 
--Copyright (c) Microsoft Corporation
--Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([id] int,[code] int,[type] int,[访问城市] varchar(4))
insert [huang]
select 1,101,1,'北京' union all
select 2,101,3,'上海' union all
select 3,101,5,'南京' union all
select 4,102,1,'杭州' union all
select 5,102,2,'深圳' union all
select 6,103,1,'北京'
--------------开始查询--------------------------
SELECT a.id,a.[code],a.[type],a.[访问城市],b.[counts] AS 记录数
FROM huang a INNER JOIN (
select MAX(id) id,[code] ,COUNT(1) [counts]
from [huang]
GROUP BY [code])b ON a.id=b.id 
----------------结果----------------------------
/* 
id          code        type        访问城市 记录数
----------- ----------- ----------- ---- -----------
3           101         5           南京   3
5           102         2           深圳   2
6           103         1           北京   1
*/

热点排行