अपाचे डर्बी - ग्रुप बाय क्लॉज
ग्रुप बाय क्लॉज का उपयोग सेलेक्ट स्टेटमेंट के साथ किया जाता है। इसका उपयोग समरूप डेटा के मामले में सबसेट बनाने के लिए किया जाता है। आमतौर पर, इस खंड को ORDER BY क्लॉज के बाद और WHERE क्लॉज के बाद रखा जाता है।
वाक्य - विन्यास
निम्नलिखित ग्रुप बाय क्लॉज का वाक्य विन्यास है -
ij>SELECT column1, column2, . . . table_name GROUP BY column1, column2, . . .;
उदाहरण
मान लें कि हमारे पास डेटाबेस में एक कर्मचारी है जिसका नाम निम्नलिखित रिकॉर्ड के साथ है -
ID |NAME |SALARY |LOCATION
------------------------------------------------------------------
1 |Amit |30000 |Hyderabad
2 |Rahul |39000 |Lucknow
3 |Renuka |50000 |Hyderabad
4 |Archana |15000 |Vishakhapatnam
5 |Kalyan |40000 |Hyderabad
6 |Trupthi |45000 |Vishakhapatnam
7 |Raghav |12000 |Lucknow
8 |Suchatra |33000 |Vishakhapatnam
9 |Rizwan |20000 |Lucknow
समूह के आधार पर समूह द्वारा निम्नलिखित चयन कथन स्थान के आधार पर तालिका को समूहित करता है। यह किसी स्थान पर कर्मचारियों को दिए जाने वाले वेतन की कुल राशि को प्रदर्शित करता है।
ij> SELECT Location, SUM(Salary) from Employees GROUP BY Location;
यह निम्न आउटपुट उत्पन्न करेगा -
LOCATION |2
-------------------------------------------------------
Hyderabad |120000
Lucknow |71000
Vishakhapatnam |93000
3 rows selected
उसी तरह, निम्नलिखित क्वेरी में एक स्थान पर कर्मचारियों के वेतन के रूप में खर्च की गई औसत राशि पाई जाती है।
ij> SELECT Location, AVG(Salary) from Employees GROUP BY Location;
यह निम्न आउटपुट उत्पन्न करेगा -
LOCATION |2
-----------------------------------------------------
Hyderabad |40000
Lucknow |23666
Vishakhapatnam |31000
3 rows selected
समूह क्लॉज द्वारा JDBC उदाहरण
यह खंड आपको सिखाता है कि ग्रुप बाय क्लॉज़ का उपयोग कैसे करें और JDBC एप्लिकेशन का उपयोग करके Apache Derby डेटाबेस में एक टेबल पर CURD संचालन करें।
यदि आप नेटवर्क क्लाइंट का उपयोग करके डर्बी नेटवर्क सर्वर का अनुरोध करना चाहते हैं, तो सुनिश्चित करें कि सर्वर ऊपर और चल रहा है। नेटवर्क क्लाइंट ड्राइवर का वर्ग नाम org.apache.derby.jdbc.ClientDriver है और URL jdbc: derby: // localhost: 1527 / हैDATABASE_NAME;बनाने = true उपयोगकर्ता =USER_NAME;passw ord =PASSWORD"
Group By clause का उपयोग करने के लिए नीचे दिए गए चरणों का पालन करें और Apache Derby में एक टेबल पर CURD संचालन करें
चरण 1: चालक को पंजीकृत करें
डेटाबेस के साथ संवाद करने के लिए, सबसे पहले, आपको चालक को पंजीकृत करने की आवश्यकता है। forName() कक्षा की विधि Classएक स्ट्रिंग मान को स्वीकार करता है जो एक वर्ग नाम का प्रतिनिधित्व करता है, इसे मेमोरी में लोड करता है, जो स्वचालित रूप से इसे पंजीकृत करता है। इस विधि का उपयोग करके चालक को पंजीकृत करें।
चरण 2: कनेक्शन प्राप्त करें
सामान्य तौर पर, हम डेटाबेस से संवाद करने के लिए पहला कदम इसके साथ जुड़ना चाहते हैं। Connectionवर्ग एक डेटाबेस सर्वर के साथ शारीरिक संबंध का प्रतिनिधित्व करता है। आप इनवॉइस करके कनेक्शन ऑब्जेक्ट बना सकते हैंgetConnection() की विधि DriverManagerकक्षा। इस विधि का उपयोग करके एक कनेक्शन बनाएँ।
चरण 3: एक स्टेटमेंट ऑब्जेक्ट बनाएं
आपको एक बनाने की आवश्यकता है Statement या PreparedStatement या, CallableStatementडेटाबेस में एसक्यूएल स्टेटमेंट भेजने के लिए ऑब्जेक्ट। आप इन विधियों का उपयोग करके बना सकते हैंcreateStatement(), prepareStatement() and, prepareCall()क्रमशः। उपयुक्त विधि का उपयोग करके इन दोनों वस्तुओं को बनाएं।
चरण 4: क्वेरी निष्पादित करें
एक बयान बनाने के बाद, आपको इसे निष्पादित करने की आवश्यकता है। Statement वर्ग एक क्वेरी को निष्पादित करने के लिए विभिन्न तरीके प्रदान करता है execute()एक कथन को निष्पादित करने की विधि जो एक से अधिक परिणाम सेट लौटाती है। executeUpdate()विधि का उपयोग INSERT, UPDATE, DELETE जैसे प्रश्नों को निष्पादित करने के लिए किया जाता है। executeQuery()विधि डेटा देता है। इन विधियों में से किसी एक का उपयोग करें और पहले बनाए गए कथन को निष्पादित करें।
उदाहरण
JDBC उदाहरण का अनुसरण करना है कि कैसे उपयोग करना है Group ByJDBC प्रोग्राम का उपयोग करके अपाचे डर्बी में एक टेबल पर CURD संचालन को क्लॉज और प्रदर्शन करना। यहां, हम एम्बेडेड ड्राइवर का उपयोग करके नमूनाडीबी नामक एक डेटाबेस से कनेक्ट कर रहे हैं (यदि यह मौजूद नहीं है तो बना देगा)।
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
public class GroupByClauseExample {
public static void main(String args[]) throws Exception {
//Registering the driver
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
//Getting the Connection object
String URL = "jdbc:derby:sampleDB;create=true";
Connection conn = DriverManager.getConnection(URL);
//Creating the Statement object
Statement stmt = conn.createStatement();
//Creating a table and populating it
stmt.execute("CREATE TABLE EmployeesData( "
+ "Id INT NOT NULL GENERATED ALWAYS AS IDENTITY, "
+ "Name VARCHAR(255), "
+ "Salary INT NOT NULL, "
+ "Location VARCHAR(255), "
+ "PRIMARY KEY (Id))");
stmt.execute("INSERT INTO EmployeesData(Name, Salary, Location) "
+ "VALUES ('Amit', 30000, 'Hyderabad'), "
+ "('Rahul', 39000, 'Lucknow'), "
+ "('Renuka', 50000, 'Hyderabad'), "
+ "('Archana', 15000, 'Vishakhapatnam'), "
+ "('Kalyan', 40000, 'Hyderabad'), "
+ "('Trupthi', 45000, 'Vishakhapatnam'), "
+ "('Raghav', 12000, 'Lucknow'), "
+ "('Suchatra', 33000, 'Vishakhapatnam'), "
+ "('Rizwan', 20000, 'Lucknow')");
//Executing the query
String query = "SELECT Location, SUM(Salary) from EmployeesData GROUP BY Location";
ResultSet rs = stmt.executeQuery(query);
while(rs.next()) {
System.out.println("Location: "+rs.getString(1));
System.out.println("Sum of salary: "+rs.getString(2));
System.out.println(" ");
}
}
}
उत्पादन
उपरोक्त कार्यक्रम को निष्पादित करने पर, आपको निम्नलिखित आउटपुट मिलेगा -
Location: Hyderabad
Sum of salary: 120000
Location: Lucknow
Sum of salary: 71000
Location: Vishakhapatnam
Sum of salary: 93000