首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL效率优化,O(n^2)时间复杂度,如何简化?

SQL效率优化,O(n^2)时间复杂度,如何简化?
EN

Stack Overflow用户
提问于 2015-12-08 17:01:41
回答 1查看 97关注 0票数 0
代码语言:javascript
复制
insert into probclass (jobid, tag, probability) 
    (select s1.jobid, s1.tag, (select count(*) from sqlset as s2 
                             where s1.jobid = s2.jobid and s1.tag = s2.tag)
                            /
                            (select count(*) from sqlset as s3 
                             where s1.jobid = s3.jobid) 
     from sqlset as s1)

我是SQL的新手,但我正在尝试编写一个尽可能简单的查询。这是一个简单的查询,它计算具有相同'jobid‘的attr 'tag’的概率。我知道这是糟糕的编码,因为枚举数和分子数一次又一次地重复计算(即每次都是如此)。

有没有简单的O(n)查询?(简单地说,我的意思是不要使用很多子句,如WITH等。)

EN

回答 1

Stack Overflow用户

发布于 2015-12-08 20:55:22

试着简单地说

代码语言:javascript
复制
     select count(*) as 'count1' into #temp1 from sqlset as s2 
     where s1.id = s2.id and s1.tag = s2.tag

代码语言:javascript
复制
     select count(*) as 'count2' into #temp2 from sqlset as s3 
     where s1.id = s3.id

如果这两者对于不同表是不同的计数值,那么

代码语言:javascript
复制
     insert into probclass (id, tag, probability) 
    (select s1.id, s1.tag, (select count1 from #temp1/select count2 from #te,p2))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34151723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档