AI_SUMMARIZE_AGG
Overview
Aggregates a text column and returns a summary across multiple rows. Not subject to context window limitations.
Syntax
AI_SUMMARIZE_AGG(text_column)
AI_SUMMARIZE_AGG(text_column)
AI_SUMMARIZE_AGG(text_column)
Parameters
text_column (VARCHAR): Column containing text to summarize
Use Cases
Summarize customer feedback by product
Create executive summaries from detailed records
Generate meeting highlights across multiple sessions
Consolidate survey responses
Aggregate news articles by topic
Code Examples
Example 1: Summarize Reviews by Product
SELECT product_id, COUNT(*) AS review_count, AI_SUMMARIZE_AGG(review_text) AS summary FROM customer_reviews GROUP BY
SELECT product_id, COUNT(*) AS review_count, AI_SUMMARIZE_AGG(review_text) AS summary FROM customer_reviews GROUP BY
SELECT product_id, COUNT(*) AS review_count, AI_SUMMARIZE_AGG(review_text) AS summary FROM customer_reviews GROUP BY
Output:
product_id | review_count | summary -----------|--------------|-------- 101 | 45 | Customers appreciate the battery life and build quality. Main concerns are price and weight. 102 | 32 | Highly rated for performance. Users report occasional connectivity issues
product_id | review_count | summary -----------|--------------|-------- 101 | 45 | Customers appreciate the battery life and build quality. Main concerns are price and weight. 102 | 32 | Highly rated for performance. Users report occasional connectivity issues
product_id | review_count | summary -----------|--------------|-------- 101 | 45 | Customers appreciate the battery life and build quality. Main concerns are price and weight. 102 | 32 | Highly rated for performance. Users report occasional connectivity issues
Example 2: Monthly Meeting Summaries
SELECT DATE_TRUNC('month', meeting_date) AS month, AI_SUMMARIZE_AGG(meeting_notes) AS monthly_summary FROM team_meetings WHERE meeting_date >= CURRENT_DATE - 180 GROUP BY month ORDER BY month
SELECT DATE_TRUNC('month', meeting_date) AS month, AI_SUMMARIZE_AGG(meeting_notes) AS monthly_summary FROM team_meetings WHERE meeting_date >= CURRENT_DATE - 180 GROUP BY month ORDER BY month
SELECT DATE_TRUNC('month', meeting_date) AS month, AI_SUMMARIZE_AGG(meeting_notes) AS monthly_summary FROM team_meetings WHERE meeting_date >= CURRENT_DATE - 180 GROUP BY month ORDER BY month
Example 3: Customer Feedback by Region
SELECT customer_region, AI_SUMMARIZE_AGG(feedback_text) AS regional_feedback FROM customer_feedback WHERE feedback_date >= CURRENT_DATE - 30 GROUP BY
SELECT customer_region, AI_SUMMARIZE_AGG(feedback_text) AS regional_feedback FROM customer_feedback WHERE feedback_date >= CURRENT_DATE - 30 GROUP BY
SELECT customer_region, AI_SUMMARIZE_AGG(feedback_text) AS regional_feedback FROM customer_feedback WHERE feedback_date >= CURRENT_DATE - 30 GROUP BY
Example 4: Summarize Support Tickets
SELECT ticket_category, COUNT(*) AS ticket_count, AI_SUMMARIZE_AGG(ticket_description) AS category_summary FROM support_tickets WHERE status = 'Resolved' AND resolved_date >= CURRENT_DATE - 7 GROUP BY
SELECT ticket_category, COUNT(*) AS ticket_count, AI_SUMMARIZE_AGG(ticket_description) AS category_summary FROM support_tickets WHERE status = 'Resolved' AND resolved_date >= CURRENT_DATE - 7 GROUP BY
SELECT ticket_category, COUNT(*) AS ticket_count, AI_SUMMARIZE_AGG(ticket_description) AS category_summary FROM support_tickets WHERE status = 'Resolved' AND resolved_date >= CURRENT_DATE - 7 GROUP BY
Example 5: Sales Call Summaries
SELECT sales_rep_id, sales_rep_name, AI_SUMMARIZE_AGG(call_notes) AS weekly_summary FROM sales_calls WHERE call_date >= DATE_TRUNC('week', CURRENT_DATE) GROUP BY sales_rep_id,
SELECT sales_rep_id, sales_rep_name, AI_SUMMARIZE_AGG(call_notes) AS weekly_summary FROM sales_calls WHERE call_date >= DATE_TRUNC('week', CURRENT_DATE) GROUP BY sales_rep_id,
SELECT sales_rep_id, sales_rep_name, AI_SUMMARIZE_AGG(call_notes) AS weekly_summary FROM sales_calls WHERE call_date >= DATE_TRUNC('week', CURRENT_DATE) GROUP BY sales_rep_id,
Data Output Examples
Product Review Summary
Input: 50 customer reviews Output: "The product receives high marks for design and functionality. Customers frequently mention the intuitive interface and fast performance. Common complaints include limited color options and higher price compared to competitors
Input: 50 customer reviews Output: "The product receives high marks for design and functionality. Customers frequently mention the intuitive interface and fast performance. Common complaints include limited color options and higher price compared to competitors
Input: 50 customer reviews Output: "The product receives high marks for design and functionality. Customers frequently mention the intuitive interface and fast performance. Common complaints include limited color options and higher price compared to competitors
Meeting Notes Summary
Input: 4 weekly team meetings Output: "Team focused on Q1 goals and resource allocation. Key decisions: hiring two new developers, postponing Feature X to Q2, implementing new CI/CD pipeline. Action items assigned for documentation updates and client presentations
Input: 4 weekly team meetings Output: "Team focused on Q1 goals and resource allocation. Key decisions: hiring two new developers, postponing Feature X to Q2, implementing new CI/CD pipeline. Action items assigned for documentation updates and client presentations
Input: 4 weekly team meetings Output: "Team focused on Q1 goals and resource allocation. Key decisions: hiring two new developers, postponing Feature X to Q2, implementing new CI/CD pipeline. Action items assigned for documentation updates and client presentations
Model Information
Model Used: Snowflake managed model
Context Window: 128,000 tokens per row (unlimited rows)
Max Output: 8,192 tokens
Limitations & Considerations
Input Processing
Each row can contain up to 128,000 tokens
Aggregates across all rows in group
No hard limit on number of rows
Cost
Billing based on input and output tokens
All text in aggregated column counts as input
Automatic prompt overhead added
Output Quality
Works best with coherent, related content
May produce generic summaries for disparate content
Quality improves with focused grouping
Regional Availability
AWS US West/East: ✓
Azure East US: ✓
EU regions: ✓
Cross-region inference: ✓
Best Practices
1. Group Data Appropriately
-- Good: Grouped by meaningful dimension SELECT product_category, price_tier, AI_SUMMARIZE_AGG(review_text) AS summary FROM reviews GROUP BY product_category, price_tier; -- Less effective: Too broad SELECT AI_SUMMARIZE_AGG(review_text) FROM
-- Good: Grouped by meaningful dimension SELECT product_category, price_tier, AI_SUMMARIZE_AGG(review_text) AS summary FROM reviews GROUP BY product_category, price_tier; -- Less effective: Too broad SELECT AI_SUMMARIZE_AGG(review_text) FROM
-- Good: Grouped by meaningful dimension SELECT product_category, price_tier, AI_SUMMARIZE_AGG(review_text) AS summary FROM reviews GROUP BY product_category, price_tier; -- Less effective: Too broad SELECT AI_SUMMARIZE_AGG(review_text) FROM
2. Filter Before Aggregating
SELECT product_id, AI_SUMMARIZE_AGG(feedback_text) AS critical_feedback FROM customer_feedback WHERE sentiment_score < -0.5 -- Only negative feedback AND feedback_date >= CURRENT_DATE - 30 GROUP BY
SELECT product_id, AI_SUMMARIZE_AGG(feedback_text) AS critical_feedback FROM customer_feedback WHERE sentiment_score < -0.5 -- Only negative feedback AND feedback_date >= CURRENT_DATE - 30 GROUP BY
SELECT product_id, AI_SUMMARIZE_AGG(feedback_text) AS critical_feedback FROM customer_feedback WHERE sentiment_score < -0.5 -- Only negative feedback AND feedback_date >= CURRENT_DATE - 30 GROUP BY
3. Combine with Metrics
SELECT department, COUNT(*) AS ticket_count, AVG(resolution_time_hours) AS avg_resolution_time, AI_SUMMARIZE_AGG(ticket_description) AS common_issues FROM support_tickets WHERE created_date >= CURRENT_DATE - 7 GROUP BY
SELECT department, COUNT(*) AS ticket_count, AVG(resolution_time_hours) AS avg_resolution_time, AI_SUMMARIZE_AGG(ticket_description) AS common_issues FROM support_tickets WHERE created_date >= CURRENT_DATE - 7 GROUP BY
SELECT department, COUNT(*) AS ticket_count, AVG(resolution_time_hours) AS avg_resolution_time, AI_SUMMARIZE_AGG(ticket_description) AS common_issues FROM support_tickets WHERE created_date >= CURRENT_DATE - 7 GROUP BY
4. Use for Report Generation
CREATE TABLE weekly_summaries AS SELECT DATE_TRUNC('week', event_date) AS week, event_type, COUNT(*) AS event_count, AI_SUMMARIZE_AGG(event_details) AS weekly_summary FROM events WHERE event_date >= CURRENT_DATE - 90 GROUP BY week,
CREATE TABLE weekly_summaries AS SELECT DATE_TRUNC('week', event_date) AS week, event_type, COUNT(*) AS event_count, AI_SUMMARIZE_AGG(event_details) AS weekly_summary FROM events WHERE event_date >= CURRENT_DATE - 90 GROUP BY week,
CREATE TABLE weekly_summaries AS SELECT DATE_TRUNC('week', event_date) AS week, event_type, COUNT(*) AS event_count, AI_SUMMARIZE_AGG(event_details) AS weekly_summary FROM events WHERE event_date >= CURRENT_DATE - 90 GROUP BY week,
Common Use Cases
Executive Reporting
SELECT 'Q1 2024' AS quarter, AI_SUMMARIZE_AGG(project_update) AS quarterly_summary FROM project_updates WHERE update_date BETWEEN '2024-01-01' AND '2024-03-31'
SELECT 'Q1 2024' AS quarter, AI_SUMMARIZE_AGG(project_update) AS quarterly_summary FROM project_updates WHERE update_date BETWEEN '2024-01-01' AND '2024-03-31'
SELECT 'Q1 2024' AS quarter, AI_SUMMARIZE_AGG(project_update) AS quarterly_summary FROM project_updates WHERE update_date BETWEEN '2024-01-01' AND '2024-03-31'
Customer Insights
SELECT customer_segment, COUNT(DISTINCT customer_id) AS customer_count, AI_SUMMARIZE_AGG(feedback) AS segment_insights FROM customer_feedback GROUP BY
SELECT customer_segment, COUNT(DISTINCT customer_id) AS customer_count, AI_SUMMARIZE_AGG(feedback) AS segment_insights FROM customer_feedback GROUP BY
SELECT customer_segment, COUNT(DISTINCT customer_id) AS customer_count, AI_SUMMARIZE_AGG(feedback) AS segment_insights FROM customer_feedback GROUP BY
Competitive Analysis
SELECT competitor_name, AI_SUMMARIZE_AGG(mention_text) AS competitor_mentions FROM social_media_monitoring WHERE mention_date >= CURRENT_DATE - 30 GROUP BY
SELECT competitor_name, AI_SUMMARIZE_AGG(mention_text) AS competitor_mentions FROM social_media_monitoring WHERE mention_date >= CURRENT_DATE - 30 GROUP BY
SELECT competitor_name, AI_SUMMARIZE_AGG(mention_text) AS competitor_mentions FROM social_media_monitoring WHERE mention_date >= CURRENT_DATE - 30 GROUP BY
Related Functions
AI_AGG - For custom aggregation prompts
AI_COMPLETE - For detailed analysis
AI_SENTIMENT - For sentiment-focused aggregation
More Articles

Learn
·
Feb 18, 2026
BigQuery Global Queries: How to Run Cross-Region SQL in 2026

Analytics
·
Feb 18, 2026
Context Engineering and AI Quality for Data Teams

Product
·
Feb 18, 2026
Accelerate Analytics Development with Paradime and Tableau

Product
·
Feb 18, 2026
Accelerate Analytics Development with Paradime and Tableau
Experience Analytics for the AI-Era
Start your 14-day trial today - it's free and no credit card needed
Experience Analytics for the AI-Era
Start your 14-day trial today - it's free and no credit card needed
Experience Analytics for the AI-Era
Start your 14-day trial today - it's free and no credit card needed
Platform
Resources
ADD-ONs
Industries
Copyright © 2026 Paradime Labs, Inc.
Made with ❤️ in San Francisco ・ London
*dbt® and dbt Core® are federally registered trademarks of dbt Labs, Inc. in the United States and various jurisdictions around the world. Paradime is not a partner of dbt Labs. All rights therein are reserved to dbt Labs. Paradime is not a product or service of or endorsed by dbt Labs, Inc.
Platform
Resources
ADD-ONs
Industries


Copyright © 2026 Paradime Labs, Inc.
Made with ❤️ in San Francisco ・ London
*dbt® and dbt Core® are federally registered trademarks of dbt Labs, Inc. in the United States and various jurisdictions around the world. Paradime is not a partner of dbt Labs. All rights therein are reserved to dbt Labs. Paradime is not a product or service of or endorsed by dbt Labs, Inc.
Platform
Resources
ADD-ONs
Industries


Copyright © 2026 Paradime Labs, Inc.
Made with ❤️ in San Francisco ・ London
*dbt® and dbt Core® are federally registered trademarks of dbt Labs, Inc. in the United States and various jurisdictions around the world. Paradime is not a partner of dbt Labs. All rights therein are reserved to dbt Labs. Paradime is not a product or service of or endorsed by dbt Labs, Inc.
