ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle开发 » 请教一个SQL的写法

标题: 请教一个SQL的写法
离线 imake
大三学生



精华贴数 0
个人空间 0
技术积分 339 (5764)
社区积分 4 (18701)
注册日期 2007-5-31
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-6-27 21:41 
我给子查询加上别名
SELECT company, cnt
  FROM ( SELECT company, COUNT(name) cnt
         FROM works
         GROUP BY company
         ORDER BY 2 DESC
  ) as a
WHERE rownum = 1
报错:Unknown column 'rownum' in 'where clause'
估计是rownum是Oracle专有的吧。我还见过写top 1 的,但是也没测试通。
谢谢大家


只看该作者    顶部
离线 caizhuoyi
Oracle Stranger


精华贴数 2
个人空间 0
技术积分 1524 (1102)
社区积分 448 (1495)
注册日期 2006-3-1
论坛徽章:4
授权会员生肖徽章2007版:龙2008北京奥运纪念徽章:棒球数据库板块每日发贴之星  
      

发表于 2008-6-27 23:27 
回复 #11 imake 的帖子

限制返回n行:
oracle:rownum <= n
mysql、postgresql:limit n
sql server:top n
db2:fetch first n rows only


__________________
我不在江湖,但江湖中有我的传说;
我身在江湖,江湖里却没有我的传说。
只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5591 (236)
社区积分 44383 (17)
注册日期 2007-9-10
论坛徽章:19
祖母绿萤石祖母绿紫水晶紫水晶红宝石
海蓝宝石紫水晶蓝锆石月度论坛发贴之星金色在线徽章生肖徽章2007版:龙

发表于 2008-6-28 08:00 
在oracle里面没有top


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 wuhuaT
勿忘我


来自 勿问我
精华贴数 0
个人空间 0
技术积分 1837 (891)
社区积分 479 (1437)
注册日期 2008-1-14
论坛徽章:9
2008北京奥运纪念徽章:田径2008北京奥运纪念徽章:羽毛球数据库板块每日发贴之星ERP板块每日发贴之星生肖徽章2007版:鸡生肖徽章2007版:蛇
生肖徽章2007版:牛生肖徽章2007版:兔    

发表于 2008-6-28 08:03 
LZ的是什么?


__________________
活到老,学到老,玩到老,乐到老
只看该作者    顶部
离线 gthboy
万事如意


精华贴数 1
个人空间 0
技术积分 1769 (934)
社区积分 2 (29332)
注册日期 2006-6-25
论坛徽章:2
2008北京奥运纪念徽章:柔道     
      

发表于 2008-6-28 10:06 
我又看了一下,四楼的其实完全可以写作这样:

select company,emp from(
        select company,count(employee) emp
          from  work
          group by company
)
where emp=(
        select max(count(employee))
                  from work
                 group by company);

在各个不同数据库上应该都可以执行


__________________
只看该作者    顶部
离线 caizhuoyi
Oracle Stranger


精华贴数 2
个人空间 0
技术积分 1524 (1102)
社区积分 448 (1495)
注册日期 2006-3-1
论坛徽章:4
授权会员生肖徽章2007版:龙2008北京奥运纪念徽章:棒球数据库板块每日发贴之星  
      

发表于 2008-6-28 10:27 
oracle:
SELECT company, cnt
  FROM (SELECT company, COUNT(employee) cnt
          FROM works
         GROUP BY company
         ORDER BY 2 DESC)
WHERE rownum = 1;

mysql/postgresql:
SELECT company, cnt
  FROM (SELECT company, COUNT(employee) cnt
          FROM works
         GROUP BY company
         ORDER BY 2 DESC) LIMIT 1;

sql server:
SELECT top 1 company, cnt
  FROM (SELECT company, COUNT(employee) cnt
          FROM works
         GROUP BY company
         ORDER BY 2 DESC)         

db2:
SELECT company, cnt
  FROM (SELECT company, COUNT(employee) cnt
          FROM works
         GROUP BY company
         ORDER BY 2 DESC) FETCH FIRST 1 ROWS ONLY;


__________________
我不在江湖,但江湖中有我的传说;
我身在江湖,江湖里却没有我的传说。
只看该作者    顶部
在线/呼叫 zhangweicai74
阿财


来自 贵州
精华贴数 3
个人空间 240
技术积分 5704 (232)
社区积分 21742 (59)
注册日期 2007-12-13
论坛徽章:155
授权会员生肖徽章2007版:虎生肖徽章2007版:龙   
      

发表于 2008-6-28 11:08 
LS是万事通啊


__________________
NEVER TOO LATE
想吃贵州家乡菜不?进来嘛,老乡!!
http://space.itpub.net/12391917/viewspace-257185
玩玩双节棍(l_l)

美丽家乡黄果树瀑布
http://space.itpub.net/12391917/viewspace-244134
只看该作者    顶部
离线 mylife920
初级会员



精华贴数 0
个人空间 0
技术积分 114 (15033)
社区积分 0 (1514420)
注册日期 2007-8-16
论坛徽章:0
      
      

发表于 2008-6-28 14:22 
小马哥给留个联系方式吧。


只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5591 (236)
社区积分 44383 (17)
注册日期 2007-9-10
论坛徽章:19
祖母绿萤石祖母绿紫水晶紫水晶红宝石
海蓝宝石紫水晶蓝锆石月度论坛发贴之星金色在线徽章生肖徽章2007版:龙

发表于 2008-6-28 16:55 


QUOTE:
原帖由 mylife920 于 2008-6-28 14:22 发表
小马哥给留个联系方式吧。

个人资料里面有我的QQ


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 imake
大三学生



精华贴数 0
个人空间 0
技术积分 339 (5764)
社区积分 4 (18701)
注册日期 2007-5-31
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-6-30 12:05 
为什么不能这样写呢?
select company,count(employee)
from  works
group by company
having count(employee) = max(count(employee))


只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问