2010-12-11 46 views
1

私はこのようなテーブルを1日に複数のエントリを格納する可能性がありますid, name, datetime今、私は1つのクエリで最高額のエントリで一日を選択する方法を探しています。MySQLのエントリ数で注文

今まで私はすべてのエントリをループしていましたが、$highestの整数をすべての値と比較していましたが、1つのSQLクエリで簡単に行う必要があります。誰でもアイデア?

更新は:

の表は、基本的には、結果がその特定の日からの2つのエントリがあるため2010-11-30をする必要があります。この

 
id, name, datetime 
1, test, 2010-12-01 12:12:12 
2, test2, 2010-11-30 12:12:12 
3, test3, 2010-11-30 13:13:13 
4, test4, 2010-10-29 12:12:12

のようなものを見て、それが効果的に「最高の日です"(またはエントリの量が最も多い日)。

+1

応答をあなたは今正しい見えてきました。 「期待通りに動かなかった」という意味は何ですか? –

+0

両方のスクリプトでエントリ数が最大の日付が返されない – baik

+1

4つのテスト行を使用してテンポラリテーブルを作成し、既存の回答からクエリを実行し、求めた結果を返します(2010-11-30) 。 –

答えて

3

これを試してみてください:

SELECT DATE(`datetime`) AS `date` 
FROM your_table 
GROUP BY `date` 
ORDER BY COUNT(*) DESC 
LIMIT 1 
+0

残念ながら、これは期待どおりに機能しませんでした。私の質問は誤解を招く可能性があります。 – baik

+1

このクエリは、 '| 2010-11-30 | 'は、最もエントリの多い日付です。それがあなたが求めていたものです。 –

+0

は今や魅力的に働いていました。間違いですが、私は 'date'カラムに' datetime'ラベルを使用していましたが、うまくいかなかったのです。 – baik

4
SELECT id, name, DATE(`datetime`) AS `date`, COUNT(*) AS `count` 
FROM things 
GROUP BY `date` 
ORDER BY `count` DESC 

最高の曜日だけが必要な場合は、末尾にLIMIT 1を追加します。

idnameは、その日のランダムなレコードに由来することに注意してください。その日のすべてのレコードが必要な場合は、別のクエリを実行するか、サブクエリを使用する必要があります。

+0

残念ながら、これは期待どおりに機能しませんでした。私の質問は誤解を招く可能性があります。 – baik

+0

このクエリは、次を返します。 2 | test2 | 2010-11-30 | 2 | 'は、最もエントリの多い日付に対応する行です。それがあなたが求めていたものです。 –

+0

COUNT(*)と一緒に作業しました。ありがとう! – baik