public String generateSqlQuery() {
SqlQuery sqlQuery = newSqlQuery();
int k = getDistinctMeasureCount();
final Dialect dialect = sqlQuery.getDialect();
if (!dialect.allowsCountDistinct() && k > 0
|| !dialect.allowsMultipleCountDistinct() && k > 1)
{
distinctGenerateSql(sqlQuery, countOnly);
} else {
nonDistinctGenerateSql(sqlQuery);