我正在开发一个系统来为我的网站添加标签,现在这是我的“标签”表:
URL | Tag | UID
example1.com humor 123
example1.com humor 342
example1.com humor 234
example1.com blog 123
example1.com blog 432
example1.com food 221
example2.com blog 432
我正在使用以下查询对每个网站的标记进行求和:
SELECT *, COUNT(*) as SUM
FROM History
GROUP BY URL, UID
所以我得到了:
URL | Tag | Sum
example1.com humor 3
example1.com blog 2
example1.com food 1
example2.com blog 1
最后(这是我不知道该怎么做)我只需要为每个分组的URL只获得最大总和的2行,所以我知道该网站的实际主题是什么:
URL | Tag | Sum
example1.com humor 3
example1.com blog 2
example2.com blog 1
我该怎么做?
答案 0 :(得分:2)
尝试在结果中使用自我加入。 This article有一些很好的例子。可能更容易(也更快)从第一个查询创建临时表,然后将其用于第二步(从每个组中获取最大“总和”),而不是嵌套多个查询。请参阅标题为“从每个组中选择前N行”的页面部分。