2012-03-03 15 views
39

अगर मैं इस तरह एक मेज और डेटा है:एसक्यूएल आदेशानुसार गणना

ID | Name | Group 

1 Apple  A  

2 Boy  A 

3 Cat  B 

4 Dog  C 

5 Elep  C 

6 Fish  C 

और मैं इस तरह के रूप सबसे बड़ा मान, करने के लिए छोटी से समूह की कुल के अनुसार यह आदेश करना चाहते हैं: अ - 2 रिकॉर्ड , बी - 1 रिकॉर्ड, सी - 3 रिकॉर्ड, तो यह हो जाएगा:

3 Cat  B 

1 Apple  A  

2 Boy  A 

4 Dog  C 

5 Elep  C 

6 Fish  C 

मैंने कोशिश की

$sql = "SELECT ID,Name FROM table ORDER BY COUNT(Group)"; 

बू यह सिर्फ मेरे लिए एक परिणाम देता है।

क्या कोई संकेत हैं? धन्यवाद।

+0

मेरा उत्तर जाँच करें और मुझे पता है कि अगर आप के साथ ठीक है चलो ... भी मैं GROUP_VALUE स्तंभ है ... –

उत्तर

83

आपको पहले डेटा एकत्र करने की आवश्यकता है, यह ग्रुप बाय क्लॉज का उपयोग करके किया जा सकता है:

SELECT Group, COUNT(*) 
FROM table 
GROUP BY Group 
ORDER BY COUNT(*) DESC 

DESC कीवर्ड आप उच्चतम गिनती पहले आदेश देकर आरोही क्रम जो पहले सबसे कम गिनती में दिखाई देगा में डिफ़ॉल्ट आदेश से दिखा सकते हैं।

+0

आपके उत्तर के लिए बहुत बहुत धन्यवाद, लेकिन यह मुझे प्रति समूह केवल एक परिणाम देता है? जैसे कि: बिल्ली, बी | ऐप्पल, ए | कुत्ता, सी –

+1

क्या आप इस कोड या कुछ अन्य कोड चला रहे हैं? पहली तालिका आपके द्वारा दी गई इस क्वेरी के उत्पादन में किया जाएगा के आधार पर: सी 3 एक 2 बी 1 –

+0

मैं देख रहा हूँ, मैं इसे अब मिलता है। आपके उत्तर और उत्तर के लिए बहुत बहुत धन्यवाद। –

3

प्रयास करें:

SELECT count(*),group FROM table GROUP BY group ORDER BY group 

गिनती उतरते द्वारा ऑर्डर करने के लिए करना

SELECT count(*),group FROM table GROUP BY group ORDER BY count(*) DESC 

हो जाएगा ताकि समूह group और count और लौटने group आदेश

में आदेश वापस आ जाएगी group कॉलम द्वारा परिणामों
+0

अपने asnwer के लिए धन्यवाद, मैं इसे लेकिन यह करने की कोशिश की प्रति समूह एक परिणाम मुझे वापस? जैसे कि: बिल्ली, बी | ऐप्पल, ए | कुत्ता, सी। –

+0

@IreneLing मैंने चयनित कथन में नाम शामिल नहीं किया - इसे – ManseUK

+0

जांचें ठीक है, आपके उत्तर और उत्तर के लिए धन्यवाद। –

2
SELECT * FROM table 
group by `Group` 
ORDER BY COUNT(Group) 
+0

आपके उत्तर के लिए बहुत बहुत धन्यवाद। –

2
SELECT Group, COUNT(*) FROM table GROUP BY Group ORDER BY Group 

या गिनती

SELECT Group, COUNT(*) AS count FROM table GROUP BY Group ORDER BY count DESC 
+0

आपके उत्तर के लिए धन्यवाद। –

0

नीचे मुझे तुम्हारे पास क्या है के विपरीत देता द्वारा ऑर्डर करने के लिए। (सूचना समूह स्तंभ)

SELECT 
    * 
FROM 
    myTable 
GROUP BY 
    Group_value, 
    ID 
ORDER BY 
    count(Group_value) 

मुझे पता है कि अगर यह तुम्हारे साथ ठीक है चलो ...

मैं क्या आप भी चाहते हैं प्राप्त करने की कोशिश कर रहा हूँ ...

+0

आपके उत्तर के लिए धन्यवाद, लेकिन खेद है कि उसने मुझे सही परिणाम नहीं दिया। –

0

क्वेरी नीचे उपयोग करके देखें:

SELECT 
    GROUP, 
    COUNT(*) AS Total_Count 
FROM 
    TABLE 
GROUP BY 
    GROUP 
ORDER BY 
    Total_Count DESC 
0

प्रश्नोत्तर प्रत्येक शो का नाम सूचीबद्ध करें, और विभिन्न समयों की संख्या सूचीबद्ध करें। शो को सूचीबद्ध करें जो पहले सबसे पहले आयोजित किया गया था।

event_id show_id event_name judge_id 
0101 01 Dressage  01 
0102 01 Jumping   02 
0103 01 Led in   01 
0201 02 Led in   02 
0301 03 Led in   01 
0401 04 Dressage  04 
0501 05 Dressage  01 
0502 05 Flag and Pole 02 

उत्तर:

select event_name, count(show_id) as held_times from event 
group by event_name 
order by count(show_id) desc 
संबंधित मुद्दे