导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

关于SQL语句?

smartyyp 2003-04-17 09:02:46
有一张图书销售表Sales,有ID,类别,书名,销售额,
能不能用一句Select语句实现提取每一个类别前十名销售额的书。
...全文
4 点赞 收藏 13
写回复
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
smartyyp 2003-04-21
pengdali(大力)兄:
我的DB中有600万条测试数据,以后可能上亿,
select * from 表 a where id in (select top 10 id from 表 where 类别=a.类别 order by 销售额 desc) order by 类别,销售额 desc
这样的嵌套。。。系统好象吃不消,
回复
CrazyFor 2003-04-21
没有什么办法优化了。
回复
yohomonkey 2003-04-18
学习...
回复
pengdali 2003-04-18
select * from 表 a where id in (select top 10 id from 表 where 类别=a.类别 order by 销售额 desc) order by 类别,销售额 desc

语句就是这样了,对你的“类别”加索引
回复
smartyyp 2003-04-18
谢谢各位高手!
请问大家这句SQL有什么办法再优化以下,提高一下速度!
回复
doudouniwan 2003-04-17
已经没有机会了,随便看看
呵呵呵………………
回复
pengdali 2003-04-17
来晚了,哈哈。。恭喜找感觉!

select * from 表 a where id in (select top 10 id from 表 where 类别=a.类别 order by 销售额 desc) order by 类别,销售额 desc
回复
happydreamer 2003-04-17
恭喜 zqllyh (学习Stupid As Pig中...) 兄升级
回复
happydreamer 2003-04-17
求分类的top问题

select * from table as A
where 销售额 in ( select top 10 销售额 from table where 类别=A.类别 order by 销售额)

or

select * from table aa where exists(select 1 from
(select top 10 销售额 from table where 类别=aa.类别) bb where bb.销售额=aa.销售额)
回复
zqllyh 2003-04-17
楼上的对,我没看清题意
回复
select * from yourtable as A where id in
(select top 10 id from yourtable where 类别 = A.类别 order by 销售额 desc)
order by 类别, 销售额
回复
zqllyh 2003-04-17
select top 10 D,类别,书名,销售额 from table order by 销售额 desc
回复
zqllyh 2003-04-17
select top 10 D,类别,书名,销售额 from table order by 销售额
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告