日期:2014-05-17  浏览次数:20444 次

sql取最小值的问题
regionid     regionname     day_code_date     starttime            g0402                             
 -----------  -------------  ----------------  -------------------  --------------------------------- 
 10           海口地区           2008-6-17     2008-6-17 下午9:00:00  95.144140462660826017664790120439 
 11           海甸地区           2008-6-17     2008-6-17 下午9:00:00  95.41592657700821675497077559356  
create table #test(
regionid int primary key,
regionname varchar(20),
day_code_date datetime,
starttime datetime,
g0402 varchar(120)
)
go
insert into #test select
'10','海口地区','2008-6-17','2008-6-17 9:00:00','95.144140462660826017664790120439' union all
select '11','海甸地区','2008-6-17','2008-6-17 9:00:00','95.41592657700821675497077559356'
go
select regionname,min(regionid) from #test group by regionname
--结果
/*
海甸地区 11
海口地区 10          
*/
go
上面这样查询会显示出两条结果,而我只需要10的这条记录,并且显示regionname,不知道有什么好方法呀?


------解决方案--------------------
海甸地区 11
海口地区 10   

一个海口,一个海甸 不是同一组
------解决方案--------------------
select regionname,min(regionid) from #test group by regionname
having min(regionid) = 10
------解决方案--------------------

select regionid,regionname from #test a where not exists(select 1 from #test b where a.regionid>b.regionid)

------解决方案--------------------
没看到题目的最小值,应该如下

select top 1 regionname,min(regionid) from #test group by regionname
order by  min(regionid) 

------解决方案--------------------
引用:
这我知道,但我想显示一条并把海甸地区显示出来。

那你是要显示几条数据啊
------解决方案--------------------
分组取最小值?
------解决方案--------------------
到底要什么,这么点数据你把需要的结果贴出来也不难
------解决方案--------------------
select regionid,regionname from #test a where
 not exists
(select 1 from #test b where a.regionid>b.regionid and a.regionname = b.regionname)

------解决方案--------------------

CREATE TABLE #test
    (
      regionid INT PRIMARY KEY ,
      regionname VARCHAR(20) ,