Would love to see any factual references about the trend. It's in my vested interested as a founder of sqlframes.com
HN user
dirslashls
https://sqlframes.com/
Nice one. How do you decide the difficulty of each problem? One hard problem seemed easy using analytic functions while a medium problem felt hard as it required a self-join the realization of which is the harder part.
Creative!
Nice. It would be good to have a way to reset to get back to the initial state after zooming/panning.
Great!
How does this compare to react-virtualized (https://github.com/bvaughn/react-virtualized)? Does it handle tables (rendered with table elements and not div)? Does it support column virtual scrolling?
Nice work and great use of React Flow.
What level of sophisticated queries can be created with it? For example, can it do "Top N and Other"? Which BTW, was recently added for SQL Frames ( https://sqlframes.com/docs/data_sets/top_n_other_sets )
Most of these visual SQL builders I have seen only tackle the basic level of SQL. I am interested in an advanced SQL builder myself to plug as a no-code SQL builder to front the SQL Frames API.
Sorry, the correct link is https://sqlframes.com/docs/sql_frames/intro
I didn't find a way to edit my initial comment.
The morphing of the charts looks great. I don't know how that works, but currently I am using eCharts to achieve similar effects.
Not sure if your ask is only for open source. I got lucky that my product is JavaScript based and Docusaurus is a perfect way for me to have live interactive docs by using MDX and a wrapper react component. https://sqlframes.com/docs and a quick 5 minute tutorial at https://sqlframes.com/tutorial .
Go to https://sqlframes.com/demo and in the code editor enter the following and execute (this example is taken from the first example on PRQL github page). It generates SQL, but it also computes and displays the results within the browser (though the data set below gives no results).
const employees = SQL.values([{ title: 'Developer', country: 'USA', salary: 120, payroll_tax: 20, healthcare_cost: 6 }]); employees.schemaName = 'employees'; const { groupBy, where: { gt, eq, and }, agg: { count, sum, avg } } = SQL; return employees.pdf(SQL.script('[salary]+[payroll_tax]').as('gross_salary'),SQL.script('[gross_salary]+[healthcare_cost]').as('gross_cost')) .fdf(and(gt('gross_cost',0),eq('country','USA'))) .gdf(groupBy('title','country') ,avg('salary').as('average_salary') ,sum('salary').as('sum_salary') ,avg('gross_salary').as('average_gross_salary') ,sum('gross_salary').as('sum_gross_salary') ,avg('gross_cost').as('average_gross_cost') ,sum('gross_cost').as('sum_gross_cost') ,count().as('count')) .having(gt('count',200)) .orderBy('sum_gross_cost');