stack flowoverflow里面如何选出最好的回答

当前位置: >
【Stackoverflow好问题】SQL中去除重复行
时间: 11:33 来源:未知 作者: 阅读:次
问题 假设有一个数据量比较大的表(例如300,000+行),其中有重复的行(除了主键外,其他的列数据是一样的),如何快速去重呢? 我的表类似这样
-----------
RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null
精华回答 假设没有null值,你可以先对其他列做group by,然后只保留MIN或者MAX(RowId),删除其他行:
DELETE MyTable
FROM MyTable
LEFT OUTER JOIN (
SELECT MIN(RowId) as RowId, Col1, Col2, Col3
FROM MyTable
GROUP BY Col1, Col2, Col3
) as KeepRows ON
MyTable.RowId = KeepRows.RowId
KeepRows.RowId IS NULL
如果RowId不是int类型,而是个GUID,则可以用
CONVERT(uniqueidentifier, MIN(CONVERT(char(36), MyGuidColumn)))
(责任编辑:小可)
下一篇:没有了数年以前,在刚开始接触Java时,曾经学习过一个用于分割字符串的工具类:StringTokenizer。例如将字符串&this is a test&按照空白字符进行分割,StringTokenzier的用法示例如下:StringTokenizer st = new StringTokenizer(&this is a test&);while (st.hasMoreTokens()) {System.out.println(st.nextToken());}虽然Java文档中似乎没有将StringTokenizer标记为deprecated,但实际上这个类已经很少有人在使用了。其功能已经为String.split()方法所取代,上例的字符串可以使用String.split()方法进行分割:String tokens[] = &this is a test&.split();for (String token : tokens) {System.out.println(token);}StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.上面的文字引用自JavaDoc:“StringTokenizer是一个遗留类,之所以被保留是出于兼容性的考虑,但是在编写新的代码时已经不再鼓励使用。如果需要使用其功能,建议使用String类的split方法或者java.util.regex包取而代之”。Deprecation only happens when the class/method has some serious drawbacks. A similar situation happens with Vector: you can almost always replace it with an ArrayList, but it's not &bad& or &broken&, therefore it's not deprecated.只有当某个类或者方法包含严重的缺陷时,才会被标记为“过时(deprecated)”。与之类似的情形还有Vector:你几乎总是可以使用ArrayList替代Vector,但这并不是说Vector不好或者不能用,因此Vector并没有被标记为deprecated如果观察一下String.split()并将其与StringTokenizer进行比较,可以发现它们的不同之处:String.split()使用的是正则表达式,而StringTokenizer只是简单地逐字拆分。因此如果需要使用比单个字符更加复杂的逻辑对字符串进行拆分时,就只能放弃StringTokenizer,使用String.split()。参考:/questions/6983856/why-is-stringtokenizer-deprecated
无相关信息iOS 问题:怎么判断iphone目前是静音模式? -
怎么判断iphone目前是静音模式?
共有 3 个回答
你看看这份代码里面能不能找到:
这份代码能够显示设备的一些状态。
登录后方可回复
stackoverflow上也有回答:
登录后方可回复
谢谢,老的方法在 ios5 无效了。
登录后方可回复
登录后方可回答
耗时 0.1339 秒Home / About
StackOverflow.org began as the merging of two ideas that have been kicking around in my head for years. First, I wanted a dorky programming-related domain name, and all the cool ones (things like void stars, null pointers, and segfaults) seemed to be taken, but I luckily stubled across this one in 2003. Second, I wanted a place where I could keep the information I tend to constantly look up on Google. It seems I am constantly needing to look up an obscure HTTP response code (Quick! What error code is "Forbidden?") or some rarely used MIME/Multipart header. I also have a number of configuration files and snippets of useful code, some of which is in my organizer, some on my laptop, and some on a system at work. One solution would have been to keep my files together and bookmark specs, then use synchronization software that will copy the bookmarks around between different browsers and different operating systems. This does not work when I sit down at a coworker's computer and need to figure out a positional function for an XPath statement.
So, without further adieu, I bring you the site that I use to collect these various specifications and files. I hope you find it as useful as I have.
HTML / Javascript
HTML v4.01
Cascading Stylesheets v2.1 (CSS2)
Javascript
Old Netscape JS v1.3 Reference, including browser objects
Core Javascript 1.5 Reference
Gecko DOM Reference
W3C DOM Level 2 Core
Javascript
Visibone Color Chart
?(C) 2000 VisiBone
PHP v5.2.8
Or jump directly to a commonly used section:
Python v2.x
Python v2.6.1
Java API (Standard Edition)
Java 1.4.1 API
Java 6 API
ASCII Chart
Internet RFCs
RFC-1945: Hypertext Transfer Protocol v1.0
RFC-2616: Hypertext Transfer Protocol v1.1
RFC-2617: HTTP Basic And Digest Authentication
RFC-2045: MIME v1.0
RFC-2046: MIME Media Types
RFC-2387: MIME Multipart Related
XSL Transforms (XSLT)
Translators
: ROT-13, ROT-1, ROT-26, and everything in between
: Translate between binary and ASCII
: Translate to/from BASE64
: Encode/decode Vigenere ciphers
: Work with substitution ciphers, Java applet
: Work with substitution ciphers
: Work with rectangular transposition ciphers
: Build an anagram grid, suitable for printing, cutting apart and using like Scrabble tiles出处: 先前的文章介绍了
,这次继续排序话题,学习的是StackOverFlow的排序算法。
StackOverflow的排序共分为两类,1个是问题排序,1个是答案排序。这里主要介绍的是关于热门问题的排序。
在分析问题前可以先考虑下,如果是你来做这个排名算法需要考虑哪些因素?
1、问题的投票人数,StackOverflow允许用户投反对票,所以这里可以使用绝对投票数,即正面票-负面票数量。绝对数越高问题越热门。
2、问题浏览量,或是有效浏览量,有效浏览量可以建立一个停留时间的阀值去衡量。浏览的越多则越热门。
3、问题的答案数,理论上说答案越多则问题的越热门,但这也并不绝对,有些好的问答可能只有一个好的答案。
4、问题答案的认可数,即是否存在一个被大量认可的答案。这里存在两种情况,被提问者认可或被其他访问者投票。多少的投票量可以认为是问题答案被认可也是需要考虑的问题。
5、问题的提问时间和问题的最后答复时间,问题的受欢迎程度应该是随时间变长而变得不热门。
5、提问者的声望和回答问题的声望,声望越高的问题肯定质量越到,越值得去推荐。
在08年8月23日的时候,StackOverflow的创始人 Jeff Atwood曾经公布了一个热门问题的排名算法(
):具体为
此算法目前是否还继续使用或者是否改变不得而知。下面我们详细介绍下问题排名中涉及到的变量。将其转化成Python代码为:
import time, math
def hot (Qviews, Qanswers, Qscore, Ascore, date_ask, date_active):
Qage = round((time.time() - date_ask) / 3600)
Qupdated = round((time.time() - date_active) / 3600)
return (math.log10(Qviews) * 4 + Qanswers * Qscore / 5 + Ascore )/(pow((Qage + 1) - (Qage - Qupdated) / 2,1.5))
1、Qviews(问题的浏览次数)
– log(Qviews)*4
某个问题的浏览次数越多,就代表越受关注,得分也就越高。这里使用了以 10为底的对数,用意是当访问量越来越大,它对得分的影响将不断变小。
2、Qscore(问题得分)和 Qanswers(回答的数量)
–(Qanswers * Qscore)/5
Qscore(问题得分)= 赞成票-反对票。如果某个问题越受到好评,排名自然应该越靠前。Qanswers 表示回答的数量,代表有多少人参与这个问题。这个值越大,得分将成倍放大。这里需要注意的是,如果无人回答,Qanswers 就等于0,这时 Qscore 再高也没用,意味着再好的问题,也必须有人回答,否则进不了热点问题排行榜。
3、Ascores(回答得分)
–sum(Ascores)
一般来说,”回答”比”问题”更有意义。这一项的得分越高,就代表回答的质量越高。但是简单加总的设计还不够全面。这里有两个问题。首先,一个正确的回答胜过一百个无用的回答,但是,简单加总会导致,1个得分为 100 的回答与 100 个得分为 1 的回答,总得分相同。其次,由于得分会出现负值,因此那些特别差的回答,会拉低正确回答的得分。
4、Qage(距离问题发表的时间)和 Qupdated(距离最后一个回答的时间)
–((Qage+1) – ((Qage – Qupdated)/2)) ^ 1.5
Qage 和 Qupdated 的单位都是小时。如果一个问题的存在时间越久,或者距离上一次回答的时间越久,Qage 和 Qupdated 的值就相应增大。也就是说,随着时间流逝,这两个值都会越变越大,导致分母增大,因此总得分会越来越小。
总结:Stack Overflow 热点问题的排名,与参与度(Qviews 和 Qanswers)和质量(Qscore 和 Ascores)成正比,与时间(Qage 和 Qupdated)成反比。
关于上述的答案是否合理的,是否可以再改良,答案是肯定的,如果是你你会怎样去推荐热门问答呢?
参考地址:
Related posts:
相关 [数学之美 stackoverflow 排名] 推荐:
先前的文章介绍了
StackOverflow的系统架构,这次继续排序话题,学习的是StackOverFlow的排序算法. StackOverflow的排序共分为两类,1个是问题排序,1个是答案排序. 这里主要介绍的是关于热门问题的排序. 在分析问题前可以先考虑下,如果是你来做这个排名算法需要考虑哪些因素. 1、问题的投票人数,StackOverflow允许用户投反对票,所以这里可以使用绝对投票数,即正面票-负面票数量. 2、问题浏览量,或是有效浏览量,有效浏览量可以建立一个停留时间的阀值去衡量. 3、问题的答案数,理论上说答案越多则问题的越热门,但这也并不绝对,有些好的问答可能只有一个好的答案.
上一篇文章介绍了
Hacker News 的排名规则. 这次要介绍的是另外一个社会化新闻类网站
Reddit. Reddit对文章和评论使用了不同的排名算法,这边文章要介绍的是前者,后面的关于评论的排名在后面的文章作再作介绍. Reddit与Hacker News有很大的不同点就是,Hacker News文章标题前面只有一个向上的小箭头,即只能投赞成票,而Reddit的每个文章标题前会有两个箭头,即一个向上,一个像下. Reddit已经把他们的所有源代码进行了公开,你可通过如下地址(
/reddit/reddit)进行下载研究. 具体涉及到排序部分的代码如下:
/reddit/reddit/blob/master/r2/r2/lib/db/_sorts.pyx.
- FiO_chn - Matrix67: My Blog
下面这些文字来源于我在初三数学竞赛课的一份讲义. 这节课的主题本是四点共圆,但由此引出了三角形中很多漂亮的性质,让人深感数学之美. 在此整理出来,献给所有还在中学读书的读者,以及早已远离中学数学的 80 后. 不管大家是否喜爱数学,想必都会被这些奇妙的结论所震撼.
三角形的奇迹首先表现在各个“心”上:三角形内部的每一组有几何意义的线条都交于一点. 三条角平分线交于一点,这个点就叫做三角形的“内心”,它是三角形内切圆的圆心;三边的中垂线交于一点,这个点就叫做三角形的“外心”,它是三角形外接圆的圆心;三角形的三条中线也交于一点,这个点叫做三角形的“重心”,因为它真的就是这个三角形的重心.
感谢山边小溪-关注前端开发技术的投递. 美国著名的物理学家惠勒曾说过这样一句话:谁不知道熵概念就不能被认为是科学上的文化人,将来谁不知道分形概念,也不能称为有知识. 想必要是按这个标准算的话,很多人都不能称为有知识. 其实,在我们生活的这个世界里,分形无处不在. 分形(Fractal)一词,是曼德勃罗创造出来的,其原意具有不规则、支离破碎等意义,分形几何学是一门以非规则几何形态为研究对象的几何学. 由于不规 则现象在自然界是普遍存在的,因此分形几何又称为描述大自然的几何学. 分形几何建立以后,很快就引起了许多学科的关注,这是由于它不仅在理论上,而且在实 用上都具有重要价值. 今天这篇文章收集了45幅耀眼夺目的分形艺术作品分享给大家,一起欣赏.
- 锦达 - 博客园-首页原创精华区
  美国著名的物理学家惠勒曾说过这样一句话:谁不知道熵概念就不能被认为是科学上的文化人,将来谁不知道分形概念,也不能称为有知识. 想必要是按这个标准算的话,很多人都不能称为有知识. 其实,在我们生活的这个世界里,分形无处不在.   分形(Fractal)一词,是曼德勃罗创造出来的,其原意具有不规则、支离破碎等意义,分形几何学是一门以非规则几何形态为研究对象的几何学. 由于不规则现象在自然界是普遍存在的,因此分形几何又称为描述大自然的几何学. 分形几何建立以后,很快就引起了许多学科的关注,这是由于它不仅在理论上,而且在实用上都具有重要价值. 今天这篇文章收集了45幅耀眼夺目的分形艺术作品分享给大家,一起欣赏.
- 2楼水饺 - 煎蛋
黑客世界也有这自己的排名,如果你打算雇佣牛逼黑客做点xxxx事情,不妨看看这个网站
,它号称是世界上第一个黑客排名系统. 除了能够收集到一些黑客战绩和信息之外, 还开放给任何一个想加入该排名的盆友. 提交你的战绩,然后将RankMyHack 给出的一段代码插入到你所黑掉的网站予以证明. RankMyHack 还给不同的网站,都给了评分,黑掉评分高的网站,战绩越高. 我们看看这两个表,上面那个目前的黑客排名,下面这个是各大网站得分. 我们看到排名最高分的是,接着是. 十岁萝莉黑客发现智能手机漏洞.
- yboren - 酷壳 -
不知道大家有没有注意到StakeOverflow的404错误页面. 这个是一个很有意思的图片,不知道你看懂了吗. 看上去像Python,又像 Ruby,还像 Perl,当然也有 C的影子,还有Brainfuck. 是的,这是一个杂交程序,杂交了Python,Ruby,Perl,C,还有Brainfuck(注意其中的#号),所有的语句都是输出“404”字符串. 关于这种杂交程序,本站以前也发布过《C语言和sh脚本的杂交代码》,大家可以前往一看. 这样的有趣的玩法叫“Polyglot”,也就是说,把N种语言写在一个文件中,然后,该文件在任何编译器下都可以运行,上述的那段代码在Python,Ruby,Perl,Brainfuck下都可以正常运行,也可以被C和的编译器编译通过,并被运行.
- boho - 数据挖掘与数据分析
原文来自:.cn/android-market-ranking-rules/. 众所周知,做搜索出身的Google,旗下的Market的排名肯定是依据一个形同( A×a% + B×b% + C×c%)的公式计算出来的数值,进行排名的. 可根据其排名规则,对自己的产品设计和研发以及推广进行指导.   指标A、B、C到底是什么. 这些问题的答案,应该是每个App开发者和运营者都渴望了解的. 知道了这个答案之后,有些“聪明”的人就会像当年SP的从业者一样,去刷那些权重大的指标、从而拉升产品的排名了. 网上关于此问题的讨论很多都是不了了之、无疾而终. 相对较深入的一篇文章《Android Market App Rankings》,也只是在猜想是基于“安装量”的增长和留存.
- PH囧ENIX - Mobile 2.0-我们专注移动互联网
  众所周知,做搜索出身的Google,旗下的Market的排名肯定是依据一个形同( A×a% + B×b% + C×c%)的公式计算出来的数值,进行排名的. 开发者可根据其排名规则,对自己的产品设计和研发以及推广进行指导.   指标A、B、C到底是什么. 这些问题的答案,应该是每个App开发者和运营者都渴望了解的. 知道了这个答案之后,有些“聪明”的人就会像当年SP的从业者一样,去刷那些权重大的指标、从而拉升产品的排名了. 网上关于此问题的讨论很多都是不了了之、无疾而终. 相对较深入的一篇文章《Android Market App Rankings》,也只是在猜想是基于“安装量”的增长和留存.
- i天下网商
有心人虎用军根据视频《淘宝搜索排名规则——相关性解读及其策略》整理出了详尽的思维导图,虽然不能完全代表淘宝搜索排名规则,但对于初级阶段的卖家来说,是不可多得的一份实战干货. 天下网商视觉团队设计,图说淘宝搜索排名规则. (注:此图仅供卖家学习交流,具体操作请以淘宝官方制定的淘宝搜索排名规则为准. 【网商百宝箱】淘宝搜索新规解读.
是IT社区推荐资讯的索引,它由IT社区成员主动分享的来自各种RSS源的内容组成,每天都有关于IT社区关心的内容索引更新。
ITIndex 刊登的IT社区分享的内容版权属于原作者或网站,ITIndex与分享内容原作者无关。刊登内容谨为网络故障时之索引。}

我要回帖

更多关于 stack flow 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信