SQL GROUP BY Command for more than one field with sub grouping

MySQL Group by Query We know by using count command and group by command we can find out the total records in a particular group of data. Now we will try to apply group by command including two different fields and we will break the groups and get total records for each sub-group also. This way we will get total of each subgroup also. This can be further improved by adding SQL HAVING command with the group by command.

For this example you can download the query file to create the table with some data inside it. Inside this table there are records of documents saying details of the records. The records belongs to one category( management or Computers) and then belong to one type ( Book, CD or report )
Here is the full table with all the rows. On this we will apply the group by query
d_idnametypecategorypricestock
1Book1BookManagement220 10
2Book2CDManagement1208
3Book3ReportManagement25 4
4Book4BookManagement558
5Document1BookManagement 1523
6Document2CDComputers8045
7Document3ReportComputers5565
8Book5ReportManagement8010
9Document4CDManagement725
10Book 8BookComputers886
11Book 9CDComputers100 5
12Document5ReportComputers858
13Book 10BookComputers150 5
Here is the SQL group by command applied on the above table.

SELECT category,type, COUNT(*) as total 
FROM `documents` GROUP BY category,type
This will display the total records in each group and sub group. Like this
categorytypetotal
ComputersBook2
ComputersCD2
ComputersReport2
ManagementBook3
ManagementCD2
ManagementReport2


Download the SQL group by query file to create the table with data
SQL References Part I Learn the basic of sql group by command
Subscribe to our YouTube Channel here


Subscribe

* indicates required
Subscribe to plus2net

    plus2net.com
    Floris

    13-09-2011

    Hi, I hope somebody can help. I have done a simmilar thing as the above. I used it to find duplicates based on several collumns by adding count* > 1. But now i want to show rows that are in these groups. How can I do that?
    khan150

    21-09-2011

    Floris, suppose you are trying to find dup records in the table above. This should help SELECT d_id, count(d_id) as numofoccurrence FROM documents GROUP BY d_id HAVING count(d_id) > 1 this will display the d_id of the record and number of times its repeating. if you want to see the entire record, add more columns after select and group by respectively
    Ambas

    02-03-2013

    if can want to ask, i have 2 tables, in the have the same name of field and how i can call form text data to the combobox with php? thanks.
    smo123

    11-04-2013

    Along with table name you can call the columns like this.
    select table1.name1, table2.name1 from table1, table2 where table1.id=table2.id

    Here both tables have same column name name1 and id
    Vineet

    11-08-2014

    This is very helpful information to read in short time.
    Thanks to author.

    Post your comments , suggestion , error , requirements etc here





    SQL Video Tutorials










    We use cookies to improve your browsing experience. . Learn more
    HTML MySQL PHP JavaScript ASP Photoshop Articles FORUM . Contact us
    ©2000-2024 plus2net.com All rights reserved worldwide Privacy Policy Disclaimer