2011-06-19 23 views
0
b_id | s_id | doi  | dos  | charge | 
+------+------+------------+------------+--------+ 
| 10 | 3 | 0000-00-00 | 0000-00-00 | 200 | 
| 10 | 2 | 0000-00-00 | 0000-00-00 | 200 | 
| 20 | 1 | 0000-00-00 | 0000-00-00 | 200 | 
| 30 | 2 | 0000-00-00 | 0000-00-00 | 200 | 
| 40 | 4 | 0000-00-00 | 0000-00-00 | 200 | 
| 40 | 5 | 0000-00-00 | 0000-00-00 | 200 | 
| 70 | 5 | 0000-00-00 | 0000-00-00 | 200 | 
| 40 | 4 | 0000-00-00 | 0000-00-00 | 200 | 

mysqlクエリは最大時間繰り返すb_idを検索しますか? 私は 最大重複値のmysqlクエリ

select count(*) as counted from(select b_id from books) group by b_id 

を試みたが、それだけで40を返さないだろう...私はあまりにも遅く、クエリ

+0

あなたは明確にすることができますか?あなたは最も頻繁に現れるb_idの価値を意味しますか? – Unsliced

+0

yes..as 40は、私は、クエリが多分、それからちょうど40 – Birju

答えて

5
select b_id, count(b_id) 
from books 
group by b_id 
order by count(b_id) desc 
limit 1; 
+0

問題は、私は唯一の1列...使用してカウントは常に2つのカラムを返します。必要で返さなければなりません繰り返されますあなたの選択に 'count(b_id)'を含めないでください。あなたはテキストを削除する方法を知っていますか? – Birju

+0

を返すようにしたい...最大times..queryはわずか40 – Konerak

+0

これは、カウント( '4')、ないB_ID(' 40')を返します – Birju

0
SELECT COUNT(*) Counted FROM `books` GROUP BY `b_id` ORDER BY COUNT(*) DESC LIMIT 1 

ああから40を得ることができる方法はありますが、私は得ましたDESCが必要です:-)

+0

...ので、ありがとうございました。 – Konerak

+0

問題は、列名のためだけの別名である、あなたはそれをドロップし、「カウント(*得ることができ、常に2つの列を返します数え使用して...私は、クエリを数えるだけで40 – Birju

+0

を返すようにしたい...私は唯一の1列が必要です) "を列名として使用します。しかし、1列のデータで1行だけを返します(40)。 – Bing

-1
SELECT COUNT(*) `counted` FROM `books` 
GROUP BY `b_id` 
ORDER BY `counted` DESC 
LIMIT 0,1 
+0

問題は1つだけの列が必要です...カウントは常に2つの列を返します...私はクエリがちょうど40を返すようにします – Birju

+0

@Birju:いいえ、それは1つの列、 'counted'列を返します。クエリーを '40 'に戻したいのですが、どういう意味ですか?あなたが私たちに与えたテーブルに基づいて、それはこのクエリがあなたのために返すものです。 – Shef

+0

ので、これはあなたのためだけの '40'を返します方法です。この表 – Birju