【问题标题】:Group by almost all attributes按几乎所有属性分组
【发布时间】:2015-09-23 07:33:50
【问题描述】:

我有一个有 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);

【问题讨论】:

  • 不,您必须列出所有列。

标签: sql ms-access group-by


【解决方案1】:

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

不,没有其他办法。您必须明确列出所有列。

我能想到的另一种解决方法是将数据插入到一个包含所有 19 列的临时表中(留下你不想要的列),然后简单地这样做:

select distinct * from #temp

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-02-25
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多