मैं टी-एसक्यूएल समूह का उपयोग कैसे करूं?

मुझे पता है कि मुझे एक कोड क्वेरी के अंत में एक GROUP BY क्लॉज होना चाहिए (हालांकि मुझे नहीं पता) कि count , योग , औसत , आदि:

SELECT count(userID), userName
FROM users
GROUP BY userName

जब <�कोड> ग्रुप बाय उपयोगी होगा, और प्रदर्शन विधियां क्या होंगी?

0
जोड़ा संपादित
विचारों: 4
ध्यान दें कि 'ग्रुप बाय' परिणाम सेट का ऑर्डर नहीं करता है। यदि आपको किसी विशेष आदेश की आवश्यकता है, तो भी ऑर्डर जोड़ें
जोड़ा लेखक David Gardiner, स्रोत

5 उत्तर

ग्रुप बाय भी मदद करता है जब आप ऐसी रिपोर्ट जेनरेट करना चाहते हैं जो डेटा का एक गुच्छा औसत या योग करेगी। आप विभाग आईडी और एसयूएम द्वारा सभी बिक्री राजस्व या एवीजी प्रत्येक महीने के लिए बिक्री की गणना द्वारा समूह कर सकते हैं।

0
जोड़ा

टैग का उपयोग किए जाने वाले समय की गणना करना एक Google उदाहरण हो सकता है:

SELECT TagName, Count(*)
AS TimesUsed
FROM Tags
GROUP BY TagName ORDER TimesUsed

यदि आप बस टैग का एक अलग मूल्य चाहते हैं, तो मैं DISTINCT कथन का उपयोग करना पसंद करूंगा।

SELECT DISTINCT TagName
FROM Tags
ORDER BY TagName ASC
0
जोड़ा

ग्रुप बाय DISTINCT के समान है जिसमें यह एकाधिक रिकॉर्ड को एक में समूहित करता है।

यह उदाहरण, http://www.devguru.com/technologies/t- से उधार लिया गया है। sql / 7080.asp , उत्पाद तालिका में विशिष्ट उत्पादों को सूचीबद्ध करता है।

SELECT Product FROM Products GROUP BY Product

Product
-------------
Desktop
Laptop
Mouse
Network Card
Hard Drive
Software
Book
Accessory

DISTINCT से ग्रुप बाय का लाभ यह है कि यह हैविंग क्लॉज के साथ उपयोग किए जाने पर आपको दानेदार नियंत्रण दे सकता है।

SELECT Product, count(Product) as ProdCnt
FROM Products
GROUP BY Product
HAVING count(Product) > 2

Product      ProdCnt
--------------------
Desktop          10
Laptop            5
Mouse             3
Network Card      9
Software          6
0
जोड़ा
बहुत ही आश्चर्यजनक सरल उदाहरण यह एक +1 है
जोड़ा लेखक user96403, स्रोत

प्रत्येक विजेट श्रेणी से विजेट की संख्या को पुनर्प्राप्त करने के लिए जिसमें 5 से अधिक विजेट हैं, आप यह कर सकते हैं:

SELECT WidgetCategory, count(*)
FROM Widgets
GROUP BY WidgetCategory
HAVING count(*) > 5

"होने" खंड कुछ ऐसा होता है जो लोग अक्सर अपने सभी डेटा को क्लाइंट को पुनर्प्राप्त करने और इसके माध्यम से फिर से शुरू करने का विकल्प चुनते हैं।

0
जोड़ा

ग्रुप रिकॉर्ड्स लौटने से पहले पूरे सेट को पॉप्युलेट करने के लिए मजबूर करता है (क्योंकि यह एक निहित प्रकार है)।

इसी कारण से (और कई अन्य), किसी समूह को उप-उपरोक्त में कभी भी उपयोग न करें।

0
जोड़ा
गॉली, मुझे लगता है कि आप अकेले थे जिन्होंने प्रश्न के "प्रदर्शन" पहलू का उत्तर दिया था। +1
जोड़ा लेखक MickyD, स्रोत