4 ms·
This isn't an alternative to it. You can still write ``` SELECT country, COUNT() AS num_records FROM t GROUP BY country ``` And then append something like `
by yujzgzc 2y ago
This isn't an alternative to it.
You can still write
```
SELECT country, COUNT() AS num_records
FROM t
GROUP BY country
```
And then append something like
```
|> EXTEND FLOOR(num_records / 10) 10 AS num_records_bin
|> AGGREGATE COUNT(*) AS num_countries
GROUP BY num_records_bin
```
to get a histogram without having to nest stuff
- code_runner 2y agothis is SUPER interesting actually. I definitely didn't realize this. I'm still probably going to use a small army of CTEs for this sort of stuff, but I'm very interested to give this a shot the next time I'm exploring a dataset.
- yujzgzc 2y agoThe main value proposition is that it unnests the code. Constantly moving logic into CTEs is another way to do it but comparatively it feels very clunky after a while. For example to inspect intermediate stages of a raft of CTEs, you end up having to write a different final clause. You also can't easily skip a stage. With pipes you just comment out the part of the query you don't want, at the bottom or in the middle, and you still have a syntactically valid query. With today's pipe syntax CTEs are still needed to deal with teeing situations (multiple references to a single table) but for just a chain of transforms it is a lot simpler.