Server.Utils.QuerySummary

Takes a query and outputs number of unique items per column, as well as the top 10 most frequently occuring items


name: Server.Utils.QuerySummary
author: Clay Norris, Mike Cohen
description: Takes a query and outputs number of unique items per column, as well as the top 10 most frequently occuring items


parameters:
    - name: Query
    
sources:
    - query: |
        LET summary <= dict()
        
        LET IncrementValue(Value, Dict) = set(item=Dict, field=Value, value=get(item=Dict, field=Value, default=0) + 1)
        LET Increment(Column, Value) = set(item=summary, field=Column,
           value=IncrementValue(Value=Value, Dict=get(item=summary, field=Column, default=dict())))
        
        LET _ <= SELECT *, { 
          SELECT Increment(Column=_key, Value=str(str=_value))
          FROM items(item=_value)
        }
        FROM items(item=Query)
        
        SELECT _key as Column, to_dict(item={
                                              SELECT _key,_value FROM items(item=_value) ORDER BY _value Desc LIMIT 10
                                             }) as Top10, 
                                             len(list=_value) as TotalCount 
                                             FROM items(item=summary) ORDER BY TotalCount DESC