====ValueSummary==== Captures key values from a table into the frame. ===Parameters=== ^Name^Default^Meaning^ |method|avg|**avg**, **max**, **min** or **total**| |columns||Restrict the summary to only specific columns| |prefix||Text to add before the name of each value| |suffix||Text to add after the name of each value| |named||Override the name for the Captured attribute| |where||A condition that must be met for the value to be analysed| |split||Break the summaries up based on a value| ===Special Rate Parameters=== |rate|The value is a //rate//, controlled by a column value| |timebase|The number of seconds per time unit| ===Description=== This function performs simple analytic functions on some (or all) of the columns in a table and captures them. This can be used to capture //min//, //max//, //avg// or //total// values across the different columns of your tables. If you don't specify which columns the analytic should be performed on, it will be applied to **all** columns. ===Example=== If the frame contains the following table... ^Time^Speed^Temperature^ |10:00|0|100| |10:10|25|100| |10:20|50|100| |10:30|75|100| |10:40|100|100| { "type": "valuesummary", "method": "avg" } Your frame would then contain... ^Name^Value^ |Average Speed|50| |Average Temperature|100| ===Working with Rates=== If your values represent a //rate// (such as an amount of **production per minute**), you can use the two special parameters ('rate' and 'timebase') to change how the analytics are performed. The first is //rate//, which should be the name of the column where the **speed** or **flow rate** of your process can be read. The next is //timebase//, which lets specify the number of seconds that each 'rate' measurement represents. For example, this would be '60' if your rate measurement is in units-per-minute, or 3600 if it's in units-per-hour. So - for example - if you have scale giving you **weight per meter** and a sensor giving you **meters per minute**, you could use the following configuration... { "type": "valuesummary", "columns": ["Scale.Weight"], "rate": "Line.Speed", "multiplier": 60, "mode": "total" } ...which would give you a "Total Scale.Weight" figure that contained the total weight of manufactured product. If you simply want a total of the rate (ie, you wanted a total of the number of meters of production), use the name in both the column **and** the rate properties. For example... { "type": "valuesummary", "columns": ["Line.Speed"], "rate": "Line.Speed", "multiplier": 60, "mode": "total" } ===Splitting Results=== In some cases, you might want **several different** summary values. ^Time^Speed^Product^ |10:00|0|Chocolate| |10:10|25|Strawberry| |10:20|50|Blueberry| |10:30|75|Caramel| |10:40|100|Bananna| { "type": "valuesummary", "method": "avg", "split": "Product" } Your frame would then contain... ^Name^Value^ |Average Chocolate Speed|0| |Average Strawberry Speed|25| |Average Blueberry Speed|50| |Average Caramel Speed|75| |Average Bananna Speed|100| ===Naming=== This layer gives you control of the attributes written to the Capture. Without a 'named' parameter, your full value name will be... ////, where the name is made up of //// With the example data below... ^Temperature^Mode^ |10|Stopped| |20|Running| ...asking for an average temperature and using no other parameters would give you **AvgTemperature** with a value of 15. Where specifying... ^Attribute^Value^ |prefix|Average | |splitby|Mode| |named| Temperature| |suffix| C| ...would give you both **Average Stopped Temperature C** and **Average Running Temperature C**, with values of 10 and 20 respectively.