如何使用内部 select 获取 max(count(*)) 的行
How to get rows of max(count(*)) with inner select
我有一个查询获取按三个字段分组的内部 select 的最大计数。现在我不仅想要数字,还想要整行。我只是想不通。这是 returns 号码的查询:
SELECT MAX (count) FROM
(SELECT COUNT (*) AS count,
field1,
field2,
field3
FROM someScheme.someTable
GROUP BY field1, field2, field3
) AS counts
使用order by
和limit
:
SELECT COUNT(*) AS count, field1, field2, field3
FROM someScheme.someTable
GROUP BY field1, field2, field3
ORDER BY COUNT(*) DESC
LIMIT 1;
注意:这只是returns最大值的一个例子。
如果你想要所有可能的行,那就更复杂了:
SELECT COUNT(*) AS count, field1, field2, field3
FROM someScheme.someTable
GROUP BY field1, field2, field3
HAVING COUNT(*) = (SELECT MAX(cnt)
FROM (SELECT COUNT(*) AS cnt
FROM someScheme.someTable
GROUP BY field1, field2, field3
) t
);
我有一个查询获取按三个字段分组的内部 select 的最大计数。现在我不仅想要数字,还想要整行。我只是想不通。这是 returns 号码的查询:
SELECT MAX (count) FROM
(SELECT COUNT (*) AS count,
field1,
field2,
field3
FROM someScheme.someTable
GROUP BY field1, field2, field3
) AS counts
使用order by
和limit
:
SELECT COUNT(*) AS count, field1, field2, field3
FROM someScheme.someTable
GROUP BY field1, field2, field3
ORDER BY COUNT(*) DESC
LIMIT 1;
注意:这只是returns最大值的一个例子。
如果你想要所有可能的行,那就更复杂了:
SELECT COUNT(*) AS count, field1, field2, field3
FROM someScheme.someTable
GROUP BY field1, field2, field3
HAVING COUNT(*) = (SELECT MAX(cnt)
FROM (SELECT COUNT(*) AS cnt
FROM someScheme.someTable
GROUP BY field1, field2, field3
) t
);