Python Implementation of Pipelined Relational Query Language (PRQL)
Project description
PyPrql
Python implementation of PRQL.
Documentation of PRQL is at https://github.com/max-sixty/prql
from employees
filter country = "USA"
derive [
gross_salary: salary + payroll_tax,
gross_cost: gross_salary + benefits_cost
]
filter gross_cost > 0
aggregate by:[title, country] [
average salary,
sum salary,
average gross_salary,
sum gross_salary,
average gross_cost,
sum_gross_cost: sum gross_cost,
row_count: count salary
]
sort sum_gross_cost
filter row_count > 200
take 20
from pyprql import prql
sql = prql.to_sql(q)
print(sql)
SELECT AVG(salary),
SUM(salary),
AVG(salary + payroll_tax),
SUM(salary + payroll_tax),
AVG(salary + payroll_tax + benefits_cost),
SUM(salary + payroll_tax + benefits_cost) as sum_gross_cost,
COUNT(salary) as row_count,
salary + payroll_tax as gross_salary,
(salary + payroll_tax) + benefits_cost as gross_cost
FROM ` employees ` employees_e
WHERE country="USA" AND (gross_salary+benefits_cost)>0
GROUP BY title, country
HAVING row_count >200
ORDER BY sum_gross_cost
LIMIT 20
Differences from the spec
The parser is only able to parse casts in select statements insde of [ ]
, so
select foo | as float
will fail, it must be wrapped in brackets as a single item list.
select [ foo | as float ]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyprql-0.1.1.tar.gz
(13.8 kB
view details)
Built Distribution
pyprql-0.1.1-py3-none-any.whl
(13.6 kB
view details)
File details
Details for the file pyprql-0.1.1.tar.gz
.
File metadata
- Download URL: pyprql-0.1.1.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0728cea972278bbe38698fa86ce41f71797a71308a7ed8204d2f44ce80fac9e |
|
MD5 | 099b2f3b53780249985fc04380563149 |
|
BLAKE2b-256 | 5ae31d830eef90521ae814bdb708c9f7e3ef77a45b08b24f734ffef42d767a71 |
Provenance
File details
Details for the file pyprql-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: pyprql-0.1.1-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e0bce4da2eac8103f090485e957e5c9aa719561e8e70a24b17c98943f39c6fd |
|
MD5 | 460809c5642d1224569ddb32e9b5cc94 |
|
BLAKE2b-256 | 2d07162f42669f69a63301e6dc049d2cb7485d1a9d20ee6b8074a16cd308dcb1 |