0

実際にSQLでこれを行う方法をほとんど忘れていました。問題は、次のようなSQL選択ステートメントがあることです。

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

これは、1 つのフィールドと数値を含む多数のレコードを含むテーブルを返します。私が欲しいのは、それらのレコードの最大数の単一の値を取得することです。

4

7 に答える 7

2

それはあなたを助けるはずです。MAX()関数を使うだけ

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

LIMITを追加するだけです:

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 に答える