按所有列进行 SQL 分组

标签 sql

有没有办法在不指定列名的情况下按表的所有列进行分组?喜欢:

select * from table group by *

最佳答案

DISTINCT 关键字


我相信您正在尝试做的是:

SELECT DISTINCT * FROM MyFooTable;

如果您按所有列进行分组,您只是要求删除重复数据。

例如包含以下数据的表格:

 id |     value      
----+----------------
  1 | foo
  2 | bar
  1 | foo
  3 | something else

如果您执行以下查询,该查询与 SELECT * FROM MyFooTable GROUP BY * 基本相同(如果您假设 * 表示所有列):

按 ID、值从 MyFooTable 组中选择 *;

 id |     value      
----+----------------
  1 | foo
  3 | something else
  2 | bar

它删除了所有重复值,这本质上使其在语义上与使用 DISTINCT 关键字相同,但结果的排序除外。例如:

从 MyFooTable 中选择 DISTINCT *;

 id |     value      
----+----------------
  1 | foo
  2 | bar
  3 | something else

关于按所有列进行 SQL 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/800910/

相关文章:

mysql - 意外的外键

c# - LINQ to Entities 尝试投影两个表并将它们聚合

php - Sql:跨多个表的唯一字段约束(slug)(doctrine/symfony)

sql - LINQ 订单依据。它总是返回相同的有序列表吗?

java - 为什么mysql表中的所有记录都被删除了?

mysql - 如何在 MySQL 中将 IFNULL 与窗口函数一起使用

c# - 在撰写评论时在用户之间建立关系

mysql - 如何编写一个同时适用于 HSQLDB 和 MySQL 的查询,以在 WHERE 子句中向日期添加天数?

mysql - 在一个查询中选择记录并更新

MySQL 查询在排序时使用文件排序,尽管有索引