0

实际上,我几乎忘记了如何使用 SQL 来执行此操作,问题是我有一个 SQL 选择语句,例如:

SELECT COUNT(*) NAME FROM `SomeTable` WHERE `SomeID` = xxx GROUP BY `Field`

它确实返回一个包含一个字段和许多包含数字的记录的表。我想要的是获得这些记录中最大数量的单个值。

4

7 回答 7

2

它应该可以帮助你。只使用MAX()功能

SELECT MAX(COUNT(*)) FROM `SomeTable` WHERE `SomeID` = xxx GROUP BY `Field`
于 2012-10-09T13:39:18.770 回答
1

只需添加限制:

SELECT COUNT(`NAME`) AS `NUM` FROM `SomeTable` WHERE `SomeID` = xxx GROUP BY `Field` ORDER BY `NUM`  DESC LIMIT 1
于 2012-10-09T13:31:04.007 回答
1
select max(name) from
(
SELECT COUNT(*) NAME FROM `SomeTable` WHERE `SomeID` = xxx GROUP BY `Field`)a
于 2012-10-09T13:32:29.887 回答
1
SELECT COUNT(*) NAME 
FROM `SomeTable` 
WHERE `SomeID` = xxx 
GROUP BY `Field`
order by NAME desc
limit 1
于 2012-10-09T13:33:29.517 回答
0

我想要的是获得这些记录中最大数量的单个值。

试试这个:

SELECT t1.*
FROM SomeTable t1
(
     SELECT SomeID, Max(Field) MaxField
     FROM SomeTable
     GROUP BY SomeID
) t2 ON t1.SomeID = t2.SomeID AND t1.Field = t2.MaxField
WHERE t1.SomeID = xxx
于 2012-10-09T13:33:40.900 回答
0

如果您只想要针对过滤器的最高值的单个结果,只需使用 Max:

SELECT MAX(MyField) NAME 
FROM `SomeTable` 
WHERE `SomeID` = xxx;

或者,如果您想要按另一列分组的聚合,则语法如下:

SELECT Name, MAX(MyField) as MaxOfMyField -- Or COUNT(MyField) if you want the Count
FROM `SomeTable` 
WHERE `SomeID` = xxx 
GROUP By Name;
于 2012-10-09T13:34:07.020 回答
0

MAX 函数的语法是:

SELECT MAX(expression )
FROM tables
WHERE predicates;

例子

SELECT MAX(salary) as "Highest salary"
FROM employees;
于 2012-10-09T13:34:37.807 回答