社区
疑难问题
帖子详情
求一SQL语句,一句话写完
chocolateboy
2007-09-29 01:07:43
查询表中不同目录分类(字段假设为cata)的最新8条记录,按降序排列,结果为:
ID CATA ...
=============
9 Toy
8 Toy
7 PC
6 PC
...
...全文
135
7
打赏
收藏
求一SQL语句,一句话写完
查询表中不同目录分类(字段假设为cata)的最新8条记录,按降序排列,结果为: ID CATA ... ============= 9 Toy 8 Toy 7 PC 6 PC ...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chocolateboy
2007-09-29
打赏
举报
回复
呵呵,谢谢你详细的讲解,买单了
chocolateboy
2007-09-29
打赏
举报
回复
呵呵,谢谢你详细的讲解,买单了
Limpire
2007-09-29
打赏
举报
回复
对于这种“分组提取TOP(N)条记录”的问题,似乎只有这种解决方案,如果效率低,在索引方面想象办法了。
如可以对CATA和ID做一个复合聚集索引,CATA正序,ID逆序,查找的时候就可以省略排序:
select * from 表 a where id in (select top 8 ID from 表 where CATA= a.CATA) and CATA IN (1,2,3,4)
但插入或更新数据会慢一些,关键你怎么取这个平衡点了。
另:或许有效率更高的方法我不知道,以我的能力,就这样了:)
chocolateboy
2007-09-29
打赏
举报
回复
Limpire
你的不错!用IN会不会影效率?而且如果指定分类的话就会用到两个IN
select * from 表 a where id in (select top 8 ID from 表 where CATA=a.CATA order by ID desc) and CATA IN (1,2,3,4) order by CATA,ID desc
Limpire
2007-09-29
打赏
举报
回复
select * from 表 a where id in (select top 8 ID from 表 where CATA=a.CATA order by ID desc) order by CATA,ID desc
kk19840210
2007-09-29
打赏
举报
回复
select * from tab where (select count(1) from tab where id=tab.id and cata=tab.cata)<8
橡胶轮胎行业数字化高总
2007-09-29
打赏
举报
回复
select top 8 from tab order by ID desc
③①
SQL语句
的基本书
写
规则
在 RDBMS (关系型数据库)当中,SQL 语句是逐条执行的,一条 SQL 语句代表着数据库的一个操作。 我们通常在句子的句尾加注标点表示这句话结束,中文句子以句号。结尾,英文以点号.结尾,而 SQL 语句则使用英文...
经典
SQL语句
大全
经典
SQL语句
大全
SQL语句
的执行
分析器: 没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确。 优化器: 按照 MySQL 认为最优的方案去执行。 执行器: 执行语句,然后从存储...
MySQL - 一条 SQL 语句是如何执行的(SQL执行详解)
天天和数据库打交道,一天能
写
上几十条 SQL 语句,但你知道我们的系统是如何和数据库交互的吗?MySQL 如何帮我们存储数据、又是如何帮我们管理事务?....是不是感觉真的除了
写
几个 「select * from dual」外基本脑子...
3.2 SQL的基本书
写
规则
在RDBMS(关系型数据库)当中,SQL 语句是逐条执行的,一条 SQL 语句代表着数据库的一个操作。 我们通常在 句子的句尾加注标点表示这句话的结束,中文句子以句号 。 结束,英文以 .号结束,而 SQL 语句则使用英文 ;...
疑难问题
22,294
社区成员
121,729
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章