SQL needs to have `select` as the _last_ part, not the first. LINQ has had this for 2 decades by now: "from table_a as a, table_b as b where ... select a.blah, b.duh".
This is not relevant to GP's point. This is a separate topic, which... I don't really care, but I know a lot of people want to be able to write SQL as you suggest, and it's not hard to implement, so, sure.
Though, I think it might have to be table sources, then `SELECT`, then `WHERE`, then ... because you might want to refer to output columns in the `WHERE` clause.
Ideally, it needs to be "from", then arbitrary number of something like `let` statements that can introduce new variables, maybe interspersed with where-s, and then finally "select".
"select" can also be replaced with annotations, something like: `from table_1 t1 let t1.column_1 as @output_1 where ...` and then just collect all the @-annotated variables.
I need to write a lot of SQL, and it's so clumsy. Every time I need a CTE, I have to look into the documentation for the exact syntax.
So, why not a SORT BY ALL or a GROUPSORT BY ALL, too? Not always what you want (e.g., when you're ranking on a summarized column), but it often alphabetic order on the GROUP BY columns is just what the doctor ordered! :-)
Some do. It would also be nice to reference by ordinal number similar to order by. Very handy for quick and dirty queries. I can see the issue though that people start to lean on it too much.
Let me reference fields as I create them:
This will be great! One of the things ClickHouse has had since 2016.
SQL needs to have `select` as the _last_ part, not the first. LINQ has had this for 2 decades by now: "from table_a as a, table_b as b where ... select a.blah, b.duh".
This is not relevant to GP's point. This is a separate topic, which... I don't really care, but I know a lot of people want to be able to write SQL as you suggest, and it's not hard to implement, so, sure.
Though, I think it might have to be table sources, then `SELECT`, then `WHERE`, then ... because you might want to refer to output columns in the `WHERE` clause.
Ideally, it needs to be "from", then arbitrary number of something like `let` statements that can introduce new variables, maybe interspersed with where-s, and then finally "select".
"select" can also be replaced with annotations, something like: `from table_1 t1 let t1.column_1 as @output_1 where ...` and then just collect all the @-annotated variables.
I need to write a lot of SQL, and it's so clumsy. Every time I need a CTE, I have to look into the documentation for the exact syntax.
this seems to ignore the fact that you can group by a column that isn't in the select statement.
it's not something that i've found a particular use for, but it IS a thing you can do.
So, why not a SORT BY ALL or a GROUPSORT BY ALL, too? Not always what you want (e.g., when you're ranking on a summarized column), but it often alphabetic order on the GROUP BY columns is just what the doctor ordered! :-)
BigQuery has that and I've been loving using it since they introduced it
Also just let me reference the damn alias in a group by, FUCK
At least in PostgreSQL, both by alias and ordinal are possible:
I think it should be not only in GROUP BY, but in every context, e.g., inside expressions in SELECT, WHERE, etc.
PostgreSQL and DuckDB support this, which makes MSSQL feel like a dinosaur in context.
Some do. It would also be nice to reference by ordinal number similar to order by. Very handy for quick and dirty queries. I can see the issue though that people start to lean on it too much.
duckdb has it
https://duckdb.org/docs/stable/sql/query_syntax/groupby
Snowflake has that, once you start using it, it's painful to go back.
What? No! I want GROUP BY * and more importantly GROUP BY mytable.*
What's wrong with GROUP BY 1,2,3?
Not directly related, but I saw this project recently of a data language by google which is quite cool https://www.malloydata.dev/
would be nice
SELECT * EXCEPT(col_name) next please.
BigQuery has it! https://docs.cloud.google.com/bigquery/docs/reference/standa...