Skip to content

how can gorm-clickhouse read "with totals" row ? #157

@TDTzzz

Description

@TDTzzz

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)
}

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions