forked from danielkurniadi/clickhouse
-
-
Notifications
You must be signed in to change notification settings - Fork 75
Open
Labels
Description
how can gorm-clickhouse read "with totals" row ?
The document you expected this should be explained
Expected answer
like below,but i want to receive data by []map[string]interface
package tests
import (
"context"
"github.com/stretchr/testify/require"
"testing"
"github.com/ClickHouse/clickhouse-go/v2"
"github.com/stretchr/testify/assert"
)
func TestWithTotals(t *testing.T) {
conn, err := GetNativeConnection(nil, nil, &clickhouse.Compression{
Method: clickhouse.CompressionLZ4,
})
ctx := context.Background()
require.NoError(t, err)
const query = `
SELECT
number AS n
, COUNT()
FROM (
SELECT number FROM system.numbers LIMIT 100
) GROUP BY n WITH TOTALS
`
rows, err := conn.Query(ctx, query)
require.NoError(t, err)
var count int
for rows.Next() {
count++
var (
n uint64
c uint64
)
require.NoError(t, rows.Scan(&n, &c))
}
require.Equal(t, 100, count)
var (
n, totals uint64
)
require.NoError(t, rows.Totals(&n, &totals))
assert.Equal(t, uint64(0), n)
assert.Equal(t, uint64(100), totals)
}