按几乎所有属性分组

时间:2015-09-23 07:33:50

标签: sql ms-access group-by

我有一个包含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 个答案:

答案 0 :(得分:1)

  

但有没有更短的方式来编写它而不是列出所有属性?

没有别的办法。您必须明确列出所有列。

我能想到的另一种解决方法是将数据插入到包含所有19列的临时表中(留下您不想要的),然后按照以下方式执行:< / p>

select distinct * from #temp

答案 1 :(得分:0)

没有其他方法可以做到这一点。您必须在group by中编写所有列并选择语句。