I am trying to select all columns of a table with ONLY ONE column distinct
The table is
| subCode | Title | grade | section |
|---|---|---|---|
| 045/01 | Math | 12 | Grade 12.D |
| 045/01 | Math | 12 | Grade 12.C |
| 045/01 | Math | 12 | Grade 12.A |
| 011/01 | Science | 12 | Grade 12.D |
| 011/01 | Science | 12 | Grade 12.C |
I want to select DISTINCT subCode with the corresponding Title, grade and section
I tried:
SELECT DISTINCT subCode ,Title, grade, section FROM TABLENAME;
but it did not return what I want.
I want it to return :
| subCode | Title | grade | section |
|---|---|---|---|
| 045/01 | Math | 12 | Grade 12.D |
| 011/01 | Science | 12 | Grade 12.D |
CodePudding user response:
What you need is to group by columns subCode ,Title, grade to keep them non-aggregated, while apply aggregation for section such as
SELECT subCode ,Title, grade, MAX(section) AS section
FROM TABLENAME
GROUP BY subCode ,Title, grade
You should be getting 5 rows with or without DISTINCT keyword in the current case. Since the combination of the columns differ for each row.
CodePudding user response:
Try to GROUP BY subCode:
SELECT DISTINCT subCode, Title, grade, section FROM TABLENAME GROUP BY subCode;
