Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304416
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站网址导航为大家提供关于数据库教程相关的教程网站知识。

having的用法以及与where区别介绍ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

复制具体相关代码 具体相关代码如下:,SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region,复制具体相关代码 具体相关代码如下:,SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region hAVING SUM(area)>1000000ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

有产品表,包含id,name,city,addtime四个字段,因报表需要按城市分组,统计每个城市的最新10个产品,便向该表中插入了100万数据,做了如下系列测试:

复制具体相关代码 具体相关代码如下:ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


CREATE TABLE [dbo].[products](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [nvarchar](50) NULL,
[addtime] [datetime] NULL,
[city] [nvarchar](10) NULL,
CONSTRAINT [PK_products] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITh (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


1、采用row_number具体相关方法,执行5次,平均下来8秒左右,速度最快。

复制具体相关代码 具体相关代码如下:ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


select no, id,name,city
from (select no =row_number() over (partition by city order by addtime desc), * from products)t
where no< 11 order by city asc,addtime desc
ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


2、采用cross apply具体相关方法,执行了3次,基本都在3分5秒以上,已经很慢了。

复制具体相关代码 具体相关代码如下:ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


select distinct b.id,b.name,b.city from products a
cross apply (select top 10 * from products where city = a.city order by addtime desc) b
ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


3、采用Count查询,只执行了两次,第一次执行到5分钟时,取消任务执行了;第二次执行到13分钟时,没有hold住又直接停止了,实在无法忍受。

复制具体相关代码 具体相关代码如下:ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


select id,name,city from products a
where ( select count(city) from products where a.city = city and addtime>a.addtime) < 10
order by city asc,addtime desc
ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


4、采用游标具体相关方法,这个最后测试的,执行了5次,每次都是10秒完成,感觉还不错。

复制具体相关代码 具体相关代码如下:ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


declare @city nvarchar(10)
create table #Top(id int,name nvarchar(50),city nvarchar(10),addtime datetime)
declare mycursor cursor for
select distinct city from products order by city asc
open mycursor
fetch next from mycursor into @city
while @@fetch_status =0
begin
insert into #Top
select top 10 id,name,city,addtime from products where city = @city
fetch next from mycursor into @city
end
close mycursor
deallocate mycursor
Select * from #Top order by city asc,addtime desc
drop table #Top
ZxaAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


通过上述对比不难发现,在面临Group获取Top N场景时,可以首选row_number,游标cursor其次,另外两个就基本不考虑了,数据量大的时候根本没法使用。 关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。

标签:

分享到:

  网友投稿

注册时间:

网站:0 个   APP:0 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304416

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市