Suppose I have a table with the following schema
Student
Name | SchoolFees |
---|---|
James | $23 |
James | $21 |
Paul | $36 |
Tim | $13 |
I am trying to do a SELECT * from this table, but the catch is that I only want to retrieve one row per student, where it's SchoolFees is the highest. So for example, my query should return
Name | SchoolFees |
---|---|
James | $23 |
Paul | $36 |
Tim | $13 |
How do I go about constructing this query? I am using MariaDB
CodePudding user response:
If all you want is name and the max of fees, a simple group by is simplest:
select name, max(school_fees) from student group by name;
However, if you want the record with the max of school_fees and any other fields as well a "window function" may be better.
CodePudding user response:
You can try this
select Name, max(SchoolFees) as SchoolFees from [Table_Name]
group by Name