2015-09-23 3 views
1

У меня есть таблица с 20 столбцами. Мне нужно сгруппировать их по всем столбцам, кроме последнего.Группа почти всех атрибутов

SELECT att1, att2, att3, ..., att19, sum(att20) 
FROM table 
GROUP BY att1, att2, att3, ..., att19; 

Но существует ли более короткий способ написать его, а не перечислять все атрибуты?

Я попытался

SELECT 1,2,3,...,19, sum(att20) 
FROM table 
GROUP BY 1,2,3,...,19; 

Интересно, есть ли что-то вроде

SELECT * (except att20), sum(att20) 
FROM table 
GROUP BY * (except att20); 
+2

Нет, вам нужно будет перечислить все столбцы. – jarlh

ответ

1

Но есть более короткий путь, чтобы написать это вместо того, чтобы перечислить все атрибуты?

Нет другого пути. Вы должны указать все столбцы явно.

Другой обходной путь, который я могу думать о том, чтобы вставить данные во временную таблицу, содержащую все 19 столбцов (оставив тот, который вы не хотите), а затем просто сделать это следующим образом:

select distinct * from #temp 
0

Нет другого способа сделать это. Вы должны написать весь столбец в группе и выбрать оператор.

Смежные вопросы