1. A method comprising: receiving a request to aggregate data grouped by a first column; in response to receiving the request, loading values from the first column into an input cache; wherein the values loaded into the input cache include values, from the first column, from a set of rows; programming a filtering unit with logic to perform a comparison between a particular value, from the first column of a first row, and values in the first column of a plurality of rows, of the set of rows; based on the comparison of the particular value to values in the first column of the plurality of rows, generating a predicate result that identifies rows, within the plurality of rows, that have a value in the first column that matches the particular value; and generating an aggregate value for a second column by aggregating values, from the second column, of each of the rows identified by the predicate result; wherein the method is performed by one or more computing devices.