in reply to How to add columns with new row name using perl from mysql query?

One would think something should be possible with ROLLUP: https://dev.mysql.com/doc/refman/5.7/en/group-by-modifiers.html

Unfortunately I have no mysqld instance handy. It was not hard to do with postgres' GROUPING SETS (but it turned out to be slightly slower than choroba's UNION-approach above).

  • Comment on Re: How to add columns with new row name using perl from mysql query?

Replies are listed 'Best First'.
Re^2: How to add columns with new row name using perl from mysql query?
by chacham (Prior) on Apr 04, 2017 at 19:36 UTC

    This isn't a ROLLUP, because you don't want totals. Instead, you could use the UNION ALL, but use a CTE so the subquery is only applied once. That is, use a WITH to SELECT all the rows in the TABLE, but add ROW_NUMBER() OVER (ORDER BY queue_name). To avoid the UNION ALL (which in this case would have little to no point, as the CTE already makes a centralized query) you could wrap the ROW_NUMBER() in a CASE to go no higher than 6.Then a single aggregate query with a GROUP BY on the row number.