2011-02-10 31 views
5

私のテーブル構造は、私は最高の月の特定の日最大数(*)

クエリ

select count(open_date) as c,day(open_date) as d 
from link_click 
where month(open_date)="01" and year(open_date)="2011" 
group by d 
having c =MAX(c); 

にrecoredクリックしても、それはだために照会する

| Field  | Type  | Null | Key | Default   | Extra | 
| uid  | char(255) | NO |  |     |  | 
| lid  | char(255) | NO | MUL |     |  | 
| ip_address | char(15) | NO |  |     |  | 
| user_agent | char(255) | YES |  | NULL    |  | 
| open_date | timestamp | NO | MUL | CURRENT_TIMESTAMP |  | 
| referrer | char(255) | YES |  | NULL    |  | 
| environ | text  | YES |  | NULL    |  | 
| country | char(255) | NO | MUL |     |  | 

です結果として空のセット。

Pls。提案する。

+3

これはIMではない、あなたは独自の行にすべての文や句を配置する必要はありません。 – BoltClock

答えて

3

これはあなたの後のことですか?

select count(open_date) as c,day(open_date) as d 
from link_click 
where month(open_date)="01" and year(open_date)="2011" 
group by d 
order by c desc 
limit 1; 
+0

'GROUP BY DATE(タイムスタンプ)'が必要だと思います。 – Bobby

+0

@Bobbyは 'group by d'ではないのですか? dと – JohnC

+0

のmysql> SELECT COUNT(open_date)Cとして、日(open_date) - > から - > link_click - >ここで - >月(open_date)= "01" と年(open_date)= "2011" - dをc desc limit 1でグループ化する。 – soumen

0

これはうまくいくかもしれない:

select * from (
    select count(open_date) as c,day(open_date) as d 
    from link_click 
    where month(open_date)="01" and year(open_date)="2011" 
    group by d) 
having c =MAX(c); 
+0

のmysql> SELECT COUNT(open_date)Cとして、日(open_date) - > から - > link_click - >ここで - >月(open_date)= "01" と年(open_date)= "2011" - dをc desc limit 1でグループ化する。 – soumen

+0

これはどういう意味ですか?私はチェックし、あなたのコメントが** JohnC **の答えと等しいことを発見しました。これは彼の答えがあなたのために働いていることを意味しますか?そうであれば、答えの左側にある大きな目盛りをクリックして答えを受け入れるべきです。 – awe