【问题标题】:Selecting Top 100 Largest Values In A Table Given Possible Duplicates在给定可能重复的情况下选择表中的前 100 个最大值
【发布时间】:2012-08-14 03:42:40
【问题描述】:

我有一个具有以下结构的表 - steamid、itemid、eventid、value,所有这些只是记录我插入的每小时数据的整数或大整数。因此,用户很可能有多个条目具有相同的 steamid、itemid 甚至值。

我正在尝试获取 100 个最高值 - 但同一项目不得重复。

到目前为止我所拥有的是

SELECT itemid,value,steamid 
FROM $table 
GROUP BY itemid 
ORDER BY value DESC 
LIMIT 0,100

这给了我这个数据集(此处仅示例):

itemid      value   steamid
=================================================
599291414   66397   76561198032389066
779150329   62882   76561198001229760
773965297   51895   76561198014617403
332883551   43201   76561197992659494
333434836   40880   7656119799359013

但是,由于某种原因,这忽略了表中列出的真正最大值。我不确定我还能如何格式化它,以便我可以忽略具有相同 itemid 和 steamid 的重复条目。我不认为我可以按 steamid 分组,因为那样它会忽略可能与 steamid 关联的其他项目。

如果我选择不分组,这里是前几个。

 itemid     value   steamid
 =====================================
 1011809265 753665  76561198010314894
 376615188  101684  76561197989760193
 478937438  83448   76561198010314894
 478937438  83448   76561198010314894
 376662587  72693   76561197989760193
 376662587  72693   76561197989760193
 599291414  66454   76561198032389066
 599291414  66454   76561198032389066
 599291414  66454   76561198032389066

感谢您的见解,我很乐意回答任何可能有助于解决这个问题的问题。

【问题讨论】:

  • 我认为你不需要加入,你能不能用 MAX() 功能包装value。 IE。 SELECT itemid,max(value),steamid FROM supportContacts GROUP BY itemid ORDER BY value DESCsqlfiddle.com/#!2/3d711/25

标签: php mysql steam


【解决方案1】:

试试

SELECT * FROM (

  SELECT itemid,value,steamid FROM $table GROUP BY itemid ORDER BY value DESC
) as tbl1

GROUP BY itemid, value

LIMIT 0,100

这应该是唯一的 itemid,但只给你单个值。

【讨论】:

  • 我认为你不需要加入,你能不能只用 MAX() 功能包装value。 IE。 SELECT itemid,max(value),steamid FROM supportContacts GROUP BY itemid ORDER BY value DESC
【解决方案2】:

尝试添加不同的。

SELECT DISTINCT itemid, value, steamid 
FROM $table 
ORDER BY value DESC 
LIMIT 0,100

【讨论】:

  • MySql 上的 Group By 被用于不同
  • 不会返回所有行,因为您检查的是不同的 itemid、value、steamid 组合吗?
  • @Jeemusu 您希望从查询中检索什么?或者你想达到什么目标?
  • 我不是原来的 OP,但我的印象是他/她在问什么。
  • 如前所述,如果您以这种方式使用 distinct,您将获得 itemid 的多个条目。这是一个小提琴:sqlfiddle.com/#!2/6b9ab/1
猜你喜欢
  • 2018-12-15
  • 2011-10-10
  • 2016-02-01
  • 2014-11-13
  • 2013-03-03
  • 1970-01-01
相关资源
最近更新 更多