Syntax
GROUP_BY(items, key_or_lambda)
Usage examples
Example 1
Input | 1 { 2 "employees": [ 3 { 4 "name": "Alice", 5 "office": "Dublin" 6 }, 7 { 8 "name": "Bob", 9 "office": "Dublin" 10 }, 11 { 12 "name": "Charlie", 13 "office": "New York" 14 }, 15 { 16 "name": "Dave", 17 "office": "New York" 18 } 19 ] 20 } |
Formula | GROUP_BY(employees, "office") |
Output | 1 { 2 "Dublin": [ 3 { 4 "name": "Alice", 5 "office": "Dublin" 6 }, 7 { 8 "name": "Bob", 9 "office": "Dublin" 10 } 11 ], 12 "New York": [ 13 { 14 "name": "Charlie", 15 "office": "New York" 16 }, 17 { 18 "name": "Dave", 19 "office": "New York" 20 } 21 ] 22 } |
Example 2
Input | 1 { 2 "alerts": [ 3 { 4 "name": "Failed Login", 5 "severity": 8, 6 "source": "firewall" 7 }, 8 { 9 "name": "Config Change", 10 "severity": 5, 11 "source": "audit" 12 }, 13 { 14 "name": "Disk Space Low", 15 "severity": 3, 16 "source": "monitoring" 17 }, 18 { 19 "name": "Malware Detected", 20 "severity": 9, 21 "source": "endpoint" 22 } 23 ] 24 } |
Formula | GROUP_BY(alerts, LAMBDA(alert, IF(alert['severity'] > 7, 'high', IF(alert['severity'] > 4, 'medium', 'low')))) |
Output | 1 { 2 "high": [ 3 { 4 "name": "Failed Login", 5 "severity": 8, 6 "source": "firewall" 7 }, 8 { 9 "name": "Malware Detected", 10 "severity": 9, 11 "source": "endpoint" 12 } 13 ], 14 "medium": [ 15 { 16 "name": "Config Change", 17 "severity": 5, 18 "source": "audit" 19 } 20 ], 21 "low": [ 22 { 23 "name": "Disk Space Low", 24 "severity": 3, 25 "source": "monitoring" 26 } 27 ] 28 } |