如果具有以下数据集:

Fqdn         RefQty
abcde.com    25
abcdz.uk     10
abcdf.es     15
bcdef.fr     30
bcdeg.de     25
bcdeh.ch     50


在MySQL中如何选择以使LEFT(Fqdn,4)具有MAX(RefQty)的Fqdn?
我可以找到具有MAX(RefQty)的LEFT(Fqdn,4),但是选择Fqdn时却找不到正确的Fqdn?在这种情况下,我的答案是:

Fqdn
abcde.com
bcdeh.ch


这似乎是微不足道的,但是不知何故我为此停留了几个小时。帮助将不胜感激。

最佳答案

在内部查询中查找修剪后的字符串的最大计数,并在加入时在外部查询中使用这些计数。

SELECT T.Fqdn
FROM
YOUR_TABLE T
INNER JOIN
(SELECT LEFT(Fqdn, 4) Fqdn_Trim, MAX(RefQty) as MAX_COUNT
FROM YOUR_TABLE
GROUP BY LEFT(Fqdn, 4)) A
ON LEFT(T.Fqdn, 4) = A.Fqdn_Trim AND T.RefQty = A.MAX_COUNT
ORDER BY T.RefQty DESC;

关于mysql - MySQL查询基于子字符串left()和max()列值查找行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48220827/

10-13 05:00