【发布时间】: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 DESC。 sqlfiddle.com/#!2/3d711/25