Comments (3)
I really like this idea, it could come in handy!
I wondered if it would be possible to approximate this using a PRQL function; that might allow you to try it out before it's implemented natively within PRQL. I put this function together which works! (sorta... see below)
let sample = func
nrows <float>
tbl <relation>
-> <relation> (
from s"SELECT * FROM {tbl} USING SAMPLE {nrows}"
)
from invoices
sample 20
select { customer_id }
This outputs the following SQL:
WITH table_0 AS (
SELECT
*
FROM
invoices USING SAMPLE 20
)
SELECT
customer_id
FROM
table_0
-- Generated by PRQL compiler version:0.11.3 (https://prql-lang.org)
However, I start to get strange errors if I modify the pipeline preceding the sample
call. If I move the select { customer_id }
before the sample 20
, I get the error:
from invoices
select { customer_id }
sample 20
Error:
╭─[:9:1]
│
9 │ select { customer_id }
│ ───────────┬──────────
│ ╰──────────── unexpected ``(Select ...)``
│
│ Help: this is probably a 'bad type' error (we are working on that)
───╯
Perhaps I'm using the S-string wrong somehow... does anyone have suggestions?
from prql.
@kgutwin great use of s-strings!
The one change to fix that error is:
let sample = func
- nrows <float>
+ nrows <int>
tbl <relation>
-> <relation> (
from s"SELECT * FROM {tbl} USING SAMPLE {nrows}"
)
I agree sample
is useful. There are a lot of options for sample
in DuckDB, which makes it a bit harder to add (though still tractable...). Possibly we could add it to the docs as a nice example of s-strings initially.
Would be very open to a PR for either!
from prql.
We need to do a survey of supported features in these databases and come up with an interface that will allow (eventually) supporting all of those features.
from prql.
Related Issues (20)
- Reformatting an alias omits quoting HOT 2
- DevContainer: Need to run `git config ... --add safe.directory` one time HOT 5
- After adding 1500k line of db schema type definition to default_db module, `prqlc compile` takes more than 1G ram & 2 min even for simplest query. HOT 1
- Nightly tests failed HOT 1
- How to abstract table filtering using function? HOT 2
- Nightly tests failed HOT 1
- Nightly tests failed
- Select columns collection is inaccurate HOT 1
- Odd version number in Windows Dev Container HOT 4
- Reformatting a string containing both single and double quotes breaks down HOT 1
- Nightly tests failed HOT 1
- Nightly tests failed HOT 1
- Nightly tests failed HOT 1
- Nightly tests failed
- Converting quotes properly to double quotes in Postgres in custom field name scenario HOT 5
- Nightly tests failed
- RUSTSEC-2024-0370: proc-macro-error is unmaintained HOT 1
- Nightly tests failed HOT 1
- Nightly tests failed HOT 3
- Feature request: Better handling for "Missing main pipeline" message
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from prql.