2010-06-15 15 views
16

मैं सोच रहा था कि लौटाई गई पंक्तियों का आकलन करना संभव होगा या नहीं। किसी कॉलम सामग्री के अनुसार नहीं, बल्कि केवल एक अनुक्रमिक पूर्णांक सूचकांक प्रदान करना। जैसेएसक्यूएल में लौटाई गई पंक्तियों का आकलन कैसे करें?

select ?, count(*) as usercount from users group by age 

कुछ वापसी होगी पंक्तियों के साथ:

1 12 
2 78 
3  4 
4 42 

इसके लिए https://data.stackexchange.com/

+2

आप किस डीबीएमएस का उपयोग कर रहे हैं? – BenV

+0

@benv: यह http://odata.stackexchange.com/ – SilentGhost

+0

@SilentGhost के लिए है तो प्रासंगिक टैग [टैग: tsql] और [टैग: डेटाएक्सप्लोरर] हो सकते हैं। लेकिन अब जब MySQL और ऑरैकल जवाब हैं, तो इसे बदलने में थोड़ा देर हो चुकी है। –

उत्तर

13

कोशिश है:

SELECT 
    ROW_NUMBER() OVER(ORDER BY age) AS RowNumber 
     ,count(*) as usercount 
    from users 
    group by age 
1

आप ऐसा चाहते हैं कैसे अपने डेटाबेस सर्वर पर निर्भर करता है। एसक्यूएल सर्वर में, आप row_number() इस्तेमाल कर सकते हैं:

select row_number() over (order by age) 
,  age 
,  count(*) as usercount 
from users 
group by 
     age 
order by 
     age 

लेकिन यह ग्राहक के पक्ष पंक्ति नंबरों का उपयोग करने अक्सर आसान और तेज है।

+0

'आयु से विभाजन 'प्रत्येक' आयु 'के लिए संख्या को आराम देगा, और क्वेरी उम्र के अनुसार समूहीकृत हो रही है, इसलिए आपकी पंक्ति संख्या प्रत्येक पंक्ति के लिए 1 होगी। –

+0

@ केएम: दाएं, उत्तर में संपादित – Andomar

1

उपयोग rownumber समारोह एसक्यूएल सर्वर

SELECT 
    ROW_NUMBER() OVER (ORDER BY columnNAME) AS 'RowNumber',count(*) as usercount 
    FROM users 
+0

लिंक के लिए धन्यवाद – SilentGhost

2

में उपलब्ध MySQL के लिए:

SELECT @row := @row + 1 as row FROM anytable a, (SELECT @row := 0) r 
1

यदि यह Oracle है, rownum का उपयोग करें।

SELECT SOMETABLE.*, ROWNUM RN 
FROM SOMETABLE 
WHERE SOMETABLE.SOMECOLUMN = :SOMEVALUE 
ORDER BY SOMETABLE.SOMEOTHERCOLUMN; 

अंतिम उत्तर पूरी तरह से निर्भर करेगा कि आप किस डेटाबेस का उपयोग कर रहे हैं।

संबंधित मुद्दे

 संबंधित मुद्दे