回答:
SELECT `column`,
COUNT(`column`) AS `value_occurrence`
FROM `my_table`
GROUP BY `column`
ORDER BY `value_occurrence` DESC
LIMIT 1;
とを交換columnしてくださいmy_table。列の最も一般的な値1を表示する場合は増やしNます。
SELECT * FROM my_table GROUP BY value ORDER BY count(*) DESC;
WHERE 'value_occurrence' = 1ですか?
HAVINGはWHERE、代わりに@swisswissを使用する必要があります。
次のようなものを試してください:
SELECT `column`
FROM `your_table`
GROUP BY `column`
ORDER BY COUNT(*) DESC
LIMIT 1;
COUNT(*)直接使用できることを知りませんでしたORDER BY。GROUP BY/ HAVINGと集計列に関していくつかの制限があることを知っていて、それが機能しないと常に想定していました。
テーブル名をtblperson、列名をと考えてみましょうcity。都市の列から最も多く繰り返される都市を取得したい:
select city,count(*) as nor from tblperson
group by city
having count(*) =(select max(nor) from
(select city,count(*) as nor from tblperson group by city) tblperson)
これnorがエイリアス名です。
LIMITを使用できない場合、またはLIMITはクエリツールのオプションではありません。代わりに「ROWNUM」を使用できますが、サブクエリが必要になります。
SELECT FIELD_1, ALIAS1
FROM(SELECT FIELD_1, COUNT(FIELD_1) ALIAS1
FROM TABLENAME
GROUP BY FIELD_1
ORDER BY COUNT(FIELD_1) DESC)
WHERE ROWNUM = 1
ROWNUM
LIMIT 1代わりに使用します。構文は受け入れられた回答に示されています。