Q: How to use GROUP_CONCAT and/or NEST but limit number of elements in the result I am regularly aggregating metrics for tables of users, where the size of each aggregated group bucket is in the order of tens of thousands. I'd like to be able to provide a few example users for each bucket, but not a GROUP_CONCAT with length of thousands or potentially millions.

A: This is not possible with legacy SQL aggregate functions, but it is possible with standard SQL and its aggregate functions STRING_AGG (corresponds to GROUP_CONCAT in legacy SQL) and ARRAY_AGG (corresponds to NEST). Both of these functions support optional LIMIT clause as documented in "Using LIMIT with aggregate functions".
For example:
select string_agg(x LIMIT 2) 
from unnest(['hello', 'world!', 'foo', 'bar', 'baz']) x

returns 'hello,world!' string, and
select array_agg(x LIMIT 2) 
from unnest(['hello', 'world!', 'foo', 'bar', 'baz']) x

returns ['hello', 'world!'] array.

A: For Legacy SQL 
SELECT GROUP_CONCAT_UNQUOTED(x) FROM (
  SELECT x FROM 
    (SELECT 'hello' AS x), 
    (SELECT 'world!' AS x), 
    (SELECT 'foo' AS x), 
    (SELECT 'bar' AS x), 
    (SELECT 'baz' AS x),
LIMIT 2
)  

and   
SELECT NEST(x) FROM (
  SELECT x FROM 
    (SELECT 'hello' AS x), 
    (SELECT 'world!' AS x), 
    (SELECT 'foo' AS x), 
    (SELECT 'bar' AS x), 
    (SELECT 'baz' AS x),
LIMIT 2
) 

they respectively return 'hello,world!' string and ['hello', 'world!'] "array"  
below is example with GROUP BY   
SELECT id, GROUP_CONCAT_UNQUOTED(x) FROM (
  SELECT id, x, ROW_NUMBER() OVER(PARTITION BY id) AS num FROM 
    (SELECT 1 AS id, 'hello' AS x), 
    (SELECT 1 AS id, 'world!' AS x), 
    (SELECT 1 AS id, 'foo' AS x), 
    (SELECT 1 AS id, 'bar' AS x), 
    (SELECT 1 AS id, 'baz' AS x),
    (SELECT 2 AS id, 'hello2' AS x), 
    (SELECT 2 AS id, 'world2!' AS x), 
    (SELECT 2 AS id, 'foo2' AS x), 
    (SELECT 2 AS id, 'bar2' AS x), 
    (SELECT 2 AS id, 'baz2' AS x),
)  
WHERE num < 3
GROUP BY id

