nocodb / nocodb

🔥 🔥 🔥 Open Source Airtable Alternative
https://nocodb.com
GNU Affero General Public License v3.0
47.84k stars 3.23k forks source link

🔦 Feature: GUI based custom query builder #4336

Open lublak opened 1 year ago

lublak commented 1 year ago

Please confirm if feature request does NOT exists already ?

Describe the usecase for the feature

Sometimes it would be practical to build complicated views. Not only to filter columns but to pivot etc. There should be functions to build a view.

Suggested Solution

As an example there is excel power query. image image

Additional Context

No response

o1lab commented 1 year ago

To breakdown the issue there are couple of things here : creating a view from the UI and showing them in UI. The latter part is possible - you can create view using your fav SQL editor and do a meta sync. The SQL view will be shown as a table and can be viewed in the form of grid view.

lublak commented 1 year ago

@o1lab True. Then it would only be the first part that would have to be made possible. Whereby here also the thought was to make the something simple. Sql works but is rather complicated for most people. Query Builder is mainly like a gui editor. Many functionalities would only be very complicated to realize via sql. It was just a thought that came to me today when I was working with excel. That such a function would also be very practical in nocodb. Basically I would not say now that ne own language should be developed. But a sandbox with javascript I would be interesting: https://github.com/patriksimek/vm2 A mixture of knex commands and others could be realized here.

var pivot = table('table').select(['title']).child('elemenets', (childtable) => {
  // settings for the child
  return childtable;
}).jsonata('jsonata query').pivot(pivot.columns().remove('one columns')).group('test').map(e => {key: e.key, value: e.value});
var cloned = pivot.clone();
pivot.removeColumns(pivot.columns());
return cloned;
o1lab commented 1 year ago

Ok, I see your point. However, generally we would like to avoid code like knex within nocodb as it will be too narrow and limiting for people who are not familiar with js or knex.

lublak commented 1 year ago

@o1lab The basic idea is this. Alternatively, there would also be flow-based editing, for example. Example from n8n: image Of course adapted to nocodb. (Table -> Set -> Delete -> Pivot)

mmospanenko commented 8 months ago

Will be awesome to have something like Metabase inside for analytics, reporting