我正能的情况下,我正能的话需要一些帮助。提前感谢。 b& u9 `" `6 m
我有一个从公共资源中获取的设施数据表(约10万行)。这些数据包含了一些关于我认为是同一地点(同一名称、城市、州)的记录,但它们有不同的套房号码。另一个有趣的代码是,我在数据上有一个选择计数器,每当有人选择其中一个功能时,我就会增加数据。这样,我就可以使用选择计数器和其他权重计算,以便在列表中显示更高的结果。0 o3 |$ g+ k/ g2 I* H6 j, Y
我想做的是编写查询。当有人输入搜索查询时,它只会显示设施的记录,该记录具有最高的选择计数,而忽略其他记录。 / p% G5 b% H7 @! k2 W注:我不想预处理数据,因为它每个月都会重新加载。 " X/ K) s& ]! C0 |1 D: ]# e示意图:ID地址1地址2城市州邮政编码电话选择计数! v' X. O" }, p; D
实例搜索: women” ( z" q; p4 b4 _& W3 D7 C" KID Name City State Selection Count1 Brigham & Women's Hospital Boston MA 222 Brigham & Women's Hospital Cambridge MA 303 Brigham & Women's Hospital Boston MA 54 54 Brigham & Women's Hospital Boston MA 155 Brigham & Women's Hospital Orlando FL 36 36 Woman's Hospital of Detroit Detroit MI 1007 Brigham & Women's Hospital Boston MA 088 Woman's Hospital of Detroit Detroit MI 55我想要的是一含1、2、5、6的结果集 2 |) f+ n$ x: G+ O. j2 M' r1、3、4、7是一样的,所以带回顶部选择计数。6和8是一样的。 3 _! u' d: d' j5 W4 H2 W5 ~+ s. q我相信这里有一个地方having和top但我还是不能让它做我想做的事。 ( F/ W2 R9 P, F7 k: U有什么想法吗?; V% u: k% i$ C' x- c. C) `) l0 v
# T9 u! u) q% _8 } Q解决方案: , L+ T% r7 i& H# E 怎么样 / L* c0 D5 |9 F% y5 ~8 P4 yselect id,name,city,state,selcount from t where exists( select 1 from (select name,city,state,max(selcount) selcount from t group by name,city,state) s where s.name = t.name and s.city = t.city and s.state = t.state and s.selcount = t.selcount)为此我建了一个SQL Fiddle,显示一个有效的例子。