2011-06-19 80 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

是的..因爲40被重複最多times..query應該只返回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列...使用計數將總是返回兩列...我想要查詢返回只有40 – Birju

+0

然後,也許,請不要在您的選擇中包含「count(b_id)」?你知道如何刪除文本,不是嗎? – Konerak

+0

非常感謝你...... – Birju

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

阿得40,爲時已晚,但我得到了DESC中,我認爲這是必要的:-)

+0

這將返回count('4'),而不是b_id('40')。 – Konerak

+0

問題是我只需要1列...使用計數將總是返回兩列...我希望查詢返回只有40 – Birju

+0

計數只是列名的別名,你可以刪除它並獲得「count(* )「作爲列名。但它只會返回一列數據(40)。 – Bing

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

問題是我只需要1列...使用計數將總是返回兩列...我想查詢返回40 – Birju

+0

@Birju:不,它將只返回一列,「計數」列。你是什​​麼意思,你想查詢返回只是'40'?根據你給我們的表格,這就是這個查詢將爲你返回的內容。 – Shef

+0

所以沒有辦法從這個表中獲得40只 – Birju