YouTip LogoYouTip

Postgresql Group By

# PostgreSQL GROUP BY Statement In PostgreSQL, the **GROUP BY** statement is used with the SELECT statement to group identical data together. The GROUP BY clause in a SELECT statement is placed after the WHERE clause and before the ORDER BY clause. ### Syntax The basic syntax of the GROUP BY clause is given below: ```sql SELECT column-list FROM table_name WHERE GROUP BY column1, column2....columnN ORDER BY column1, column2....columnN The GROUP BY clause must be placed after the conditions in the WHERE clause and before the ORDER BY clause. In the GROUP BY clause, you can group by one or more columns, but the grouped columns must exist in the column list. ### Example Create the COMPANY table ((https://static.jyshare.com/download/company.sql)), with the following data: ```sql tutorialdb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+------------+-------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000 (7 rows) The following example groups the data by the NAME field value to find the total salary for each person: ```sql tutorialdb=# SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME; This will produce the following result: name | sum -------+------- Teddy | 20000 Paul | 20000 Mark | 65000 David | 85000 Allen | 15000 Kim | 45000 James | 10000 (7 rows) Now, let's add three more records to the COMPANY table using the following statements: ```sql INSERT INTO COMPANY VALUES (8, 'Paul', 24, 'Houston', 20000.00); INSERT INTO COMPANY VALUES (9, 'James', 44, 'Norway', 5000.00); INSERT INTO COMPANY VALUES (10, 'James', 45, 'Texas', 5000.00); Now, the COMPANY table has duplicate names, and the data is as follows: id | name | age | address | salary ----+-------+-----+--------------+-------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000 8 | Paul | 24 | Houston | 20000 9 | James | 44 | Norway | 5000 10 | James | 45 | Texas | 5000 (10 rows) Now, let's group the data by the NAME field value again to find the total salary for each customer: ```sql tutorialdb=# SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME; The result will be: name | sum -------+------- Allen | 15000 David | 85000 James | 20000 Kim | 45000 Mark | 65000 Paul | 40000 Teddy | 20000 (7 rows) The following example uses the ORDER BY clause with the GROUP BY clause: ```sql tutorialdb=# SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME DESC; This will produce the following result: name | sum -------+------- Teddy | 20000 Paul | 40000 Mark | 65000 Kim | 45000 James | 20000 David | 85000 Allen | 15000 (7 rows) [](#)(#) (#)[](#) [Volcengine Coding Plan supports mainstream large models like Doubao, GLM, DeepSeek, Kimi, MiniMax, etc., officially supplied, stable and reliable. Configuration Guide Β₯9.9/month Subscribe Now](https://maas.xfyun.cn/modelSquare?ch=maas_lm_l2E)
← Android TutorialLua Error Handling β†’