Postgres: Distinct Query Results
The distinct_on argument
You can fetch rows with only distinct values of a column using the distinct_on
argument.
It is typically recommended to use order_by
along with distinct_on
to ensure we get predictable results (otherwise
any arbitrary row with a distinct value of the column may be returned). Note that the distinct_on
column needs to be
the first column in the order_by
expression. See sort queries for more info on using
order_by
.
employees (
distinct_on: [employees_select_column]
order_by: [employees_order_by]
): [employees]!
# select column enum type for "employees" table
enum employees_select_column {
id
name
department
salary
}
You can see the complete specification of the distinct_on
argument in the
API reference.
Fetch results with distinct values of a particular field
For example, fetch the employee with the highest salary from each department:
GraphiQL
xxxxxxxxxx
query {
employees (
distinct_on: [department]
order_by: [
{department: asc},
{salary: desc}
]
) {
id
name
department
salary
}
}
Query Variables
Request Headers
x
{
"data": {
"employees": [
{
"id": 5,
"name": "Kamila",
"department": "Engineering",
"salary": 4325
},
{
"id": 4,
"name": "Damien",
"department": "Product",
"salary": 3124
},
{
"id": 7,
"name": "Rickard",
"department": "Services",
"salary": 2223
}
]
}
}
No Schema Available