Distinct
The distinct
method allows you to remove duplicate rows from your query results. It adds the DISTINCT
keyword to your SQL query.
Basic Usage
import { createQueryBuilder } from '@hypequery/clickhouse';
const db = createQueryBuilder<Schema>();
// Get unique values from a column
const query = db
.table('users')
.select(['country'])
.distinct()
.toSQL();
// Result: SELECT DISTINCT country FROM users
Type Definitions
distinct(): this
Parameters
No parameters required.
Returns
Returns the query builder instance for method chaining.
Examples
Basic Distinct
// Get unique countries
const query = db
.table('users')
.select(['country'])
.distinct()
.toSQL();
// Result: SELECT DISTINCT country FROM users
// Get unique statuses
const query2 = db
.table('orders')
.select(['status'])
.distinct()
.toSQL();
// Result: SELECT DISTINCT status FROM orders
Type Safety
The distinct
method provides basic TypeScript support:
interface UserSchema {
users: {
id: 'UInt32';
name: 'String';
country: 'String';
status: 'String';
};
}
const db = createQueryBuilder<UserSchema>();
// ✅ Valid distinct usage
const query = db
.table('users')
.select(['country'])
.distinct() // No parameters needed
.toSQL();
// ✅ Distinct with type-safe columns
const query2 = db
.table('users')
.select(['country', 'status'])
.distinct()
.toSQL();