diff --git a/storage/db/db.go b/storage/db/db.go
index a87be2e..decb63a 100644
--- a/storage/db/db.go
+++ b/storage/db/db.go
@@ -454,8 +454,8 @@
 type Query struct {
 	rows *sql.Rows
 	// from last call to Next
-	result *benchfmt.Result
-	err    error
+	br  *benchfmt.Reader
+	err error
 }
 
 // Next prepares the next result for reading with the Result
@@ -465,6 +465,15 @@
 	if q.err != nil {
 		return false
 	}
+	if q.br != nil {
+		if q.br.Next() {
+			return true
+		}
+		q.err = q.br.Err()
+		if q.err != nil {
+			return false
+		}
+	}
 	if !q.rows.Next() {
 		return false
 	}
@@ -473,22 +482,20 @@
 	if q.err != nil {
 		return false
 	}
-	// TODO(quentin): Needs to change when one row contains multiple Results.
-	br := benchfmt.NewReader(bytes.NewReader(content))
-	if !br.Next() {
-		q.err = br.Err()
+	q.br = benchfmt.NewReader(bytes.NewReader(content))
+	if !q.br.Next() {
+		q.err = q.br.Err()
 		if q.err == nil {
 			q.err = io.ErrUnexpectedEOF
 		}
 		return false
 	}
-	q.result = br.Result()
 	return q.err == nil
 }
 
 // Result returns the most recent result generated by a call to Next.
 func (q *Query) Result() *benchfmt.Result {
-	return q.result
+	return q.br.Result()
 }
 
 // Err returns the error state of the query.
diff --git a/storage/db/db_test.go b/storage/db/db_test.go
index e376cda..9b108eb 100644
--- a/storage/db/db_test.go
+++ b/storage/db/db_test.go
@@ -127,8 +127,11 @@
 	r.Labels["uploadid"] = u.ID
 	for _, num := range []string{"1", "2"} {
 		r.Labels["num"] = num
-		if err := u.InsertRecord(r); err != nil {
-			t.Fatalf("InsertRecord: %v", err)
+		for _, num2 := range []int{1, 2} {
+			r.Content = fmt.Sprintf("BenchmarkName %d ns/op", num2)
+			if err := u.InsertRecord(r); err != nil {
+				t.Fatalf("InsertRecord: %v", err)
+			}
 		}
 	}
 
@@ -141,11 +144,14 @@
 num: 1
 uploadid: 19700101.1
 BenchmarkName 1 ns/op
+BenchmarkName 2 ns/op
 num: 2
 BenchmarkName 1 ns/op
+BenchmarkName 2 ns/op
 `)
 
 	r.Labels["num"] = "3"
+	r.Content = "BenchmarkName 3 ns/op"
 
 	for _, uploadid := range []string{u.ID, "new"} {
 		u, err := db.ReplaceUpload(uploadid)
@@ -166,9 +172,9 @@
 		`key: value
 num: 3
 uploadid: 19700101.1
-BenchmarkName 1 ns/op
+BenchmarkName 3 ns/op
 uploadid: new
-BenchmarkName 1 ns/op
+BenchmarkName 3 ns/op
 `)
 }
 
