关于SQL语句?

smartyyp 2003-04-17 09:02:46
有一张图书销售表Sales,有ID,类别,书名,销售额,
能不能用一句Select语句实现提取每一个类别前十名销售额的书。
...全文
24 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
楼上的对,我没看清题意
愉快的登山者 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 销售额

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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