LIMIT

2009-12-06 21 views
24

के साथ MySQL तालिका से औसत का चयन करें, मैं उनसे जुड़े उपयोगकर्ता नाम से समूहित सबसे कम 5 मूल्य वाले आइटमों का औसत प्राप्त करने का प्रयास कर रहा हूं। हालांकि, नीचे दी गई क्वेरी प्रत्येक उपयोगकर्ता के लिए औसत मूल्य देती है (जो निश्चित रूप से कीमत है), लेकिन मुझे सिर्फ एक जवाब वापस करना है।LIMIT

SELECT AVG(price) 
    FROM table 
WHERE price > '0' && item_id = '$id' 
GROUP BY username 
ORDER BY price ASC 
    LIMIT 5 
+1

मुझे समझ नहीं आता तुम क्या करने की कोशिश कर रहे हैं। क्या आप एक उदाहरण तालिका संरचना, कुछ उदाहरण डेटा और उस डेटा के अपेक्षित परिणाम दे सकते हैं? –

उत्तर

55

मुझे लगता है कि यह आप क्या कर रहे हैं के बाद है:

SELECT AVG(items.price) 
    FROM (SELECT t.price 
      FROM TABLE t 
     WHERE t.price > '0' 
      AND t.item_id = '$id' 
     ORDER BY t.price 
     LIMIT 5) items 

यह 5 सबसे कम दामों की औसत वापस आ जाएगी - एक ही जवाब।

+3

+1 ग्रेट उत्तर। और 10k प्रतिनिधि तक पहुंचने पर बधाई! –

+1

बहुत अच्छा जवाब! –

+3

160 के + प्रतिनिधि तक पहुंचने पर बधाई !! –

0

नीचे सरल समाधान।

क्वेरी:

SELECT AVG(Column_name) 
FROM (SELECT Column_name 
FROM Table 
WHERE ColumnID < number[Limit you want]) 
संबंधित मुद्दे