Distinct
PRQL doesn’t have a specific distinct keyword. Instead, use group and take 1:
PRQL
1. from employees
2. select department
3. group department (
4. take 1
5. )
SQL
1. SELECT
2. DISTINCT department
3. FROM
4. employees
This also works without a linebreak:
PRQL
1. from employees
2. select department
3. group department (take 1)
SQL
1. SELECT
2. DISTINCT department
3. FROM
4. employees
Selecting from each group
We are be able to select a single row from each group by combining group and sort:
PRQL
1. # youngest employee from each department
2. from employees
3. group department (
4. sort age
5. take 1
6. )
SQL
1. WITH table_1 AS (
2. SELECT
3. *,
4. ROW_NUMBER() OVER (
5. PARTITION BY department
6. ORDER BY
7. age
8. ) AS _expr_0
9. FROM
10. employees
11. )
12. SELECT
13. *
14. FROM
15. table_1 AS table_0
16. WHERE
17. _expr_0 <= 1
Roadmap
When using Postgres dialect, we are planning to compile:
… to …
1. SELECT DISTINCT ON (department) *
2. FROM employees
3. ORDER BY department, age
