2010-04-03 29 views
1

我有這個疑問:MySQL的 - 有出現次數最少數量的選擇行

SELECT DISTINCT brand_name FROM masterdata WHERE in_stock = '1' ORDER BY brand_name 

它運作良好,但我得到了太多的結果。我如何限制這種情況,而不是僅僅尋找不同的條目,它只會給我至少3次(例如)的不同條目?

基本上,如果列有此數據...

brand_name 
========== 
apple 
banana 
apple 
apple 
orange 
banana 
orange 
orange 

...我目前的查詢將返回 「蘋果,香蕉,橘子」。我如何得到它,使它只返回「蘋果,橙色」(忽略香蕉,因爲它少於三次出現)?

我使用PHP構建查詢,如果它很重要。

謝謝!

回答

3

像這樣的東西(現成的,袖口和未經測試):

SELECT brand_name 
    FROM masterdata 
WHERE in_stock = '1' 
GROUP BY brand_name 
HAVING COUNT(*) >= 3 
ORDER BY brand_name 
+0

這是非常好的 - 它的作品,謝謝!還有一個問題,如果你會這麼友好的話:如果我想以最高的頻率顯示brand_name中的前15個條目,但按字母順序(而不是按頻率)排序,我的查詢會是什麼? 所以現在,我沒有定義出現次數的最小值,而是定義了出現次數最多的前15個入口。 – 2010-04-03 10:34:43

+0

@RC:這應該是一個新問題。 – outis 2010-04-03 10:58:21

相關問題